/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Ui;

import com.toedter.calendar.JDateChooser;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.font.TextAttribute;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
import javax.swing.JOptionPane;
import javax.swing.JSpinner;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.RowFilter;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;

/**
 *
 * @author Esteban
 */
public class VentanaModuloEstudianteEstandar extends javax.swing.JFrame{

    private String userActual;
    /**
     * Creates new form VentanaModuloEstudianteEstandar
     */
    public VentanaModuloEstudianteEstandar() {
        
        initComponents();
        initComponents2();
        initComponents3();
        initComponents4();
        initComponents5();
        initComponents6();
        initComponents7();
        initComponents8();
    } 

    public void setUserActual(String actual){
        jLabel6.setText(actual);
    }
    
    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        panelImagenEstudiante = new org.edisoncor.gui.panel.PanelImage();
        jLabel2 = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        panelImagenEstudiante2 = new org.edisoncor.gui.panel.PanelImage();
        panelOpcionesEstudiante = new javax.swing.JTabbedPane();
        panelCrearExpediente = new javax.swing.JPanel();
        panelManejoExpediente = new javax.swing.JPanel();
        nombreEstAgregar = new javax.swing.JLabel();
        apellido1EstAgregar = new javax.swing.JLabel();
        apellido2EstAgregar = new javax.swing.JLabel();
        cedulaEstAgregar = new javax.swing.JLabel();
        fechaNacEstAgregar = new javax.swing.JLabel();
        correoEst1Agregar = new javax.swing.JLabel();
        InfoEstAgregar = new javax.swing.JLabel();
        InfoRespAgregar = new javax.swing.JLabel();
        nombreRespAgregar = new javax.swing.JLabel();
        apellido1RespAgregar = new javax.swing.JLabel();
        apellido2RespAgregar = new javax.swing.JLabel();
        cedulaRespAgregar = new javax.swing.JLabel();
        fechaNacRespAgregar = new javax.swing.JLabel();
        correoRespAgregar = new javax.swing.JLabel();
        campoNombreAgregar = new javax.swing.JTextField();
        campoApellido1EstAgregar = new javax.swing.JTextField();
        campoApellido2EstAgregar = new javax.swing.JTextField();
        campoCedulaEstAgregar = new javax.swing.JTextField();
        campoEmailEst1Agregar = new javax.swing.JTextField();
        campoNombreRespAgregar = new javax.swing.JTextField();
        campoApellido1RespAgregar = new javax.swing.JTextField();
        campoApellido2RespAgregar = new javax.swing.JTextField();
        campoCedulaRespAgregar = new javax.swing.JTextField();
        campoEmailRespAgregar = new javax.swing.JTextField();
        btnNuevoEstAgregar = new javax.swing.JButton();
        btnCancelarEstAgregar = new javax.swing.JButton();
        btnCrearEstAgregar = new javax.swing.JButton();
        tel1EstAgregar = new javax.swing.JLabel();
        tel2EstAgregar = new javax.swing.JLabel();
        tel1RespAgregar = new javax.swing.JLabel();
        campoTel1EstAgregar = new javax.swing.JTextField();
        campoTel2EstAgregar = new javax.swing.JTextField();
        campoTelRespAgregar = new javax.swing.JTextField();
        astNombreAgregar = new javax.swing.JLabel();
        astApellido1Agregar = new javax.swing.JLabel();
        astCedulaAgregar = new javax.swing.JLabel();
        astFechaNacEstAgregar = new javax.swing.JLabel();
        astTel1EstAgregar = new javax.swing.JLabel();
        astCorreoAgregar = new javax.swing.JLabel();
        astNombreRespAgregar = new javax.swing.JLabel();
        astApellido1RespAgregar = new javax.swing.JLabel();
        astCedulaRespAgregar = new javax.swing.JLabel();
        astFechaNacRespAgregar = new javax.swing.JLabel();
        astCorreoRespAgregar = new javax.swing.JLabel();
        astTelRespAgregar = new javax.swing.JLabel();
        correoEst2Agregar = new javax.swing.JLabel();
        campoEmailEst2Agregar = new javax.swing.JTextField();
        estadoEstAgregar = new javax.swing.JLabel();
        astEstadoEstAgregar = new javax.swing.JLabel();
        estadoActivoEstAgregar = new javax.swing.JRadioButton();
        estadoInactivoEstAgregar = new javax.swing.JRadioButton();
        campoFechaNacEstAgregar = new com.toedter.calendar.JDateChooser();
        campoFechaNacRespAgregar = new com.toedter.calendar.JDateChooser();
        panelActualizarExpediente = new javax.swing.JScrollPane();
        panelActualizarExpediente2 = new javax.swing.JPanel();
        panelManejoExpediente2 = new javax.swing.JPanel();
        nombreEstAct = new javax.swing.JLabel();
        apellido1EstAct = new javax.swing.JLabel();
        apellido2EstAct = new javax.swing.JLabel();
        cedulaEstAct = new javax.swing.JLabel();
        fechaNacEstAct = new javax.swing.JLabel();
        correoEst1Act = new javax.swing.JLabel();
        InfoEstAct = new javax.swing.JLabel();
        InfoRespAct = new javax.swing.JLabel();
        nombreRespAct = new javax.swing.JLabel();
        apellido1RespAct = new javax.swing.JLabel();
        apellido2RespAct = new javax.swing.JLabel();
        cedulaRespAct = new javax.swing.JLabel();
        fechaNacRespAct = new javax.swing.JLabel();
        correoRespAct = new javax.swing.JLabel();
        campoNombreEstAct = new javax.swing.JTextField();
        campoApellido1EstAct = new javax.swing.JTextField();
        campoApellido2EstAct = new javax.swing.JTextField();
        campoCedulaEstAct = new javax.swing.JTextField();
        campoEmailEst1Act = new javax.swing.JTextField();
        campoNombreRespAct = new javax.swing.JTextField();
        campoApellido1RespAct = new javax.swing.JTextField();
        campoApellido2RespAct = new javax.swing.JTextField();
        campoCedulaRespAct = new javax.swing.JTextField();
        campoEmailRespAct = new javax.swing.JTextField();
        btnActualizarEst = new javax.swing.JButton();
        btnCancelarEstAct = new javax.swing.JButton();
        tel1EstAct = new javax.swing.JLabel();
        tel2EstAct = new javax.swing.JLabel();
        tel1RespAct = new javax.swing.JLabel();
        campoTel1EstAct = new javax.swing.JTextField();
        campoTel2EstAct = new javax.swing.JTextField();
        campoTelRespAct = new javax.swing.JTextField();
        correoEst2Act = new javax.swing.JLabel();
        campoEmailEst2Act = new javax.swing.JTextField();
        estadoEstAct = new javax.swing.JLabel();
        estadoActivoEstAct = new javax.swing.JRadioButton();
        estadoInactivoEstAct = new javax.swing.JRadioButton();
        campoFechaNacEstAct = new com.toedter.calendar.JDateChooser();
        campoFechaNacRespAct = new com.toedter.calendar.JDateChooser();
        busquedaEstActualizar = new javax.swing.JLabel();
        campoBusquedaEstActualizar = new javax.swing.JTextField();
        scrollEstudiantesActualizar = new javax.swing.JScrollPane();
        tablaEstudiantesActualizar = new javax.swing.JTable();
        panelEliminarExpediente = new javax.swing.JPanel();
        panelManejoExpediente3 = new javax.swing.JPanel();
        busquedaEstEliminar = new javax.swing.JLabel();
        campoBusquedaEstEliminar = new javax.swing.JTextField();
        scrollEstudiantesEliminar = new javax.swing.JScrollPane();
        tablaEstudiantesEliminar = new javax.swing.JTable();
        panelMostrarExpediente = new javax.swing.JPanel();
        panelManejoExpediente4 = new javax.swing.JPanel();
        busquedaEstMostrar = new javax.swing.JLabel();
        campoBusquedaEstMostrar = new javax.swing.JTextField();
        scrollEstudiantesMostrar = new javax.swing.JScrollPane();
        tablaEstudiantesMostrar = new javax.swing.JTable();
        panelAsignacionPromociones = new javax.swing.JScrollPane();
        panelAsignacionPromociones2 = new javax.swing.JPanel();
        panelManejoAsignacion = new javax.swing.JPanel();
        busquedaEstAsignar = new javax.swing.JLabel();
        campoBusquedaEstAsignar = new javax.swing.JTextField();
        scrollEstudiantesAsignar = new javax.swing.JScrollPane();
        tablaEstudiantesAsignar = new javax.swing.JTable();
        campoBusquedaPromocionAsignar = new javax.swing.JTextField();
        busquedaPromocionAsignar = new javax.swing.JLabel();
        scrollPromocionesAsignar = new javax.swing.JScrollPane();
        tablaPromocionesAsignar = new javax.swing.JTable();
        seleccionPromocion = new javax.swing.JLabel();
        seleccionEstudiante = new javax.swing.JLabel();
        btnCancelarAsignacion = new javax.swing.JButton();
        btnRegistrarAsignacion = new javax.swing.JButton();
        campoMesPromocion = new com.toedter.calendar.JMonthChooser();
        campoAnioPromocion = new com.toedter.calendar.JYearChooser();
        jLabel7 = new javax.swing.JLabel();
        panelDesasignacionPromociones = new javax.swing.JScrollPane();
        panelDesasignacionCursos2 = new javax.swing.JPanel();
        panelManejoDesasignacion = new javax.swing.JPanel();
        busquedaEstDesasignar = new javax.swing.JLabel();
        campoBusquedaEstDesasignar = new javax.swing.JTextField();
        scrollEstudiantesDesasignar = new javax.swing.JScrollPane();
        tablaEstudiantesDesasignar = new javax.swing.JTable();
        campoBusquedaPromocionDesasignar = new javax.swing.JTextField();
        busquedaPromocionDesasignar = new javax.swing.JLabel();
        seleccionPromocionDesasignacion = new javax.swing.JLabel();
        seleccioEstudianteDesasignacion = new javax.swing.JLabel();
        btnCancelarDesasignacion = new javax.swing.JButton();
        btnRealizarDesasignacion = new javax.swing.JButton();
        scrollPromocionesDesasignar = new javax.swing.JScrollPane();
        tablaPromocionesDesasignar = new javax.swing.JTable();
        panelMostrarAsignacionesPromociones = new javax.swing.JPanel();
        panelManejoMostrarAsignaciones = new javax.swing.JPanel();
        scrollMostrarAsignaciones = new javax.swing.JScrollPane();
        tablaMostrarAsignaciones = new javax.swing.JTable();
        campoBusqueda = new javax.swing.JTextField();
        asignacionMostrar = new javax.swing.JLabel();
        btnBusqueda = new javax.swing.JButton();
        btnCancelarBusqueda = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        panelImagenEstudiante.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Img/BarraTituloFinal2.png"))); // NOI18N
        panelImagenEstudiante.setPreferredSize(new java.awt.Dimension(840, 60));

        jLabel2.setBackground(new java.awt.Color(255, 255, 255));
        jLabel2.setFont(new java.awt.Font("Arial", 1, 18)); // NOI18N
        jLabel2.setForeground(new java.awt.Color(255, 255, 255));
        jLabel2.setText("SMAMM 2.1");

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N
        jLabel1.setForeground(new java.awt.Color(255, 255, 255));
        jLabel1.setText("Módulo de Gestión de Estudiantes");

        jLabel3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Img/SignedAs.png"))); // NOI18N

        jLabel4.setForeground(new java.awt.Color(255, 255, 255));
        jLabel4.setText("Esteban");

        jLabel5.setForeground(new java.awt.Color(255, 255, 255));
        jLabel5.setText("Registrado(a) como:");

        jLabel6.setForeground(new java.awt.Color(255, 255, 255));
        jLabel6.setText("Cerrar sesión");
        jLabel6.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                jLabel6MouseEntered(evt);
            }
            public void mouseExited(java.awt.event.MouseEvent evt) {
                jLabel6MouseExited(evt);
            }
            public void mousePressed(java.awt.event.MouseEvent evt) {
                jLabel6MousePressed(evt);
            }
        });

        javax.swing.GroupLayout panelImagenEstudianteLayout = new javax.swing.GroupLayout(panelImagenEstudiante);
        panelImagenEstudiante.setLayout(panelImagenEstudianteLayout);
        panelImagenEstudianteLayout.setHorizontalGroup(
            panelImagenEstudianteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelImagenEstudianteLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 413, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(142, 142, 142)
                .addComponent(jLabel2)
                .addGap(158, 158, 158)
                .addComponent(jLabel3)
                .addGroup(panelImagenEstudianteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(panelImagenEstudianteLayout.createSequentialGroup()
                        .addGap(28, 28, 28)
                        .addComponent(jLabel5)
                        .addGap(26, 26, 26)
                        .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 93, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(panelImagenEstudianteLayout.createSequentialGroup()
                        .addGap(101, 101, 101)
                        .addComponent(jLabel6)))
                .addGap(41, 41, 41))
        );
        panelImagenEstudianteLayout.setVerticalGroup(
            panelImagenEstudianteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panelImagenEstudianteLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(panelImagenEstudianteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(panelImagenEstudianteLayout.createSequentialGroup()
                        .addGroup(panelImagenEstudianteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel5)
                            .addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel6)
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addGroup(panelImagenEstudianteLayout.createSequentialGroup()
                        .addGroup(panelImagenEstudianteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jLabel1)
                            .addGroup(panelImagenEstudianteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
        );

        panelImagenEstudiante2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Img/FondoBlanco.png"))); // NOI18N
        panelImagenEstudiante2.setPreferredSize(new java.awt.Dimension(840, 60));

        panelOpcionesEstudiante.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                panelOpcionesEstudianteStateChanged(evt);
            }
        });

        panelCrearExpediente.setBackground(new java.awt.Color(255, 255, 255));

        panelManejoExpediente.setBackground(new java.awt.Color(255, 255, 255));
        panelManejoExpediente.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true), "Creación de Expediente de Estudiante", javax.swing.border.TitledBorder.LEFT, javax.swing.border.TitledBorder.TOP, new java.awt.Font("Calibri", 1, 18))); // NOI18N
        panelManejoExpediente.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        nombreEstAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        nombreEstAgregar.setText("Nombre:");
        panelManejoExpediente.add(nombreEstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 120, -1, -1));

        apellido1EstAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        apellido1EstAgregar.setText("Primer Apellido:");
        panelManejoExpediente.add(apellido1EstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 150, 90, -1));

        apellido2EstAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        apellido2EstAgregar.setText("Segundo Apellido:");
        panelManejoExpediente.add(apellido2EstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 180, -1, -1));

        cedulaEstAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        cedulaEstAgregar.setText("Cédula:");
        panelManejoExpediente.add(cedulaEstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 90, 50, -1));

        fechaNacEstAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        fechaNacEstAgregar.setText("Fecha de Nacimiento:");
        panelManejoExpediente.add(fechaNacEstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 210, 130, -1));

        correoEst1Agregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        correoEst1Agregar.setText("Correo electrónico 1:");
        panelManejoExpediente.add(correoEst1Agregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 240, 120, -1));

        InfoEstAgregar.setFont(new java.awt.Font("Calibri", 1, 16)); // NOI18N
        InfoEstAgregar.setText("Información requerida del Estudiante Nuevo");
        panelManejoExpediente.add(InfoEstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 40, -1, -1));

        InfoRespAgregar.setFont(new java.awt.Font("Calibri", 1, 16)); // NOI18N
        InfoRespAgregar.setText("Información adicional en caso de ser menor");
        panelManejoExpediente.add(InfoRespAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(580, 40, -1, -1));

        nombreRespAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        nombreRespAgregar.setText("Nombre del mayor responsable:");
        panelManejoExpediente.add(nombreRespAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 120, -1, -1));

        apellido1RespAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        apellido1RespAgregar.setText("Primer Apellido del responsable:");
        panelManejoExpediente.add(apellido1RespAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 150, -1, -1));

        apellido2RespAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        apellido2RespAgregar.setText("Segundo apellido del responsable:");
        panelManejoExpediente.add(apellido2RespAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 180, -1, -1));

        cedulaRespAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        cedulaRespAgregar.setText("Cédula del responsable:");
        panelManejoExpediente.add(cedulaRespAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 90, -1, -1));

        fechaNacRespAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        fechaNacRespAgregar.setText("Fecha de nacimiento del responsable:");
        panelManejoExpediente.add(fechaNacRespAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 210, -1, -1));

        correoRespAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        correoRespAgregar.setText("Correo electrónico:");
        panelManejoExpediente.add(correoRespAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 240, -1, -1));

        campoNombreAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoNombreAgregar.setCursor(new java.awt.Cursor(java.awt.Cursor.TEXT_CURSOR));
        campoNombreAgregar.setEnabled(false);
        campoNombreAgregar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                campoNombreAgregarKeyReleased(evt);
            }
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoNombreAgregarKeyTyped(evt);
            }
        });
        panelManejoExpediente.add(campoNombreAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 110, 205, -1));

        campoApellido1EstAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoApellido1EstAgregar.setEnabled(false);
        campoApellido1EstAgregar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                campoApellido1EstAgregarActionPerformed(evt);
            }
        });
        campoApellido1EstAgregar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoApellido1EstAgregarKeyTyped(evt);
            }
        });
        panelManejoExpediente.add(campoApellido1EstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 140, 205, -1));

        campoApellido2EstAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoApellido2EstAgregar.setEnabled(false);
        campoApellido2EstAgregar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoApellido2EstAgregarKeyTyped(evt);
            }
        });
        panelManejoExpediente.add(campoApellido2EstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 170, 205, -1));

        campoCedulaEstAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoCedulaEstAgregar.setEnabled(false);
        campoCedulaEstAgregar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoCedulaEstAgregarKeyTyped(evt);
            }
        });
        panelManejoExpediente.add(campoCedulaEstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 80, 205, -1));

        campoEmailEst1Agregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoEmailEst1Agregar.setEnabled(false);
        campoEmailEst1Agregar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoEmailEst1AgregarKeyTyped(evt);
            }
        });
        panelManejoExpediente.add(campoEmailEst1Agregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 230, 205, -1));

        campoNombreRespAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoNombreRespAgregar.setEnabled(false);
        campoNombreRespAgregar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoNombreRespAgregarKeyTyped(evt);
            }
        });
        panelManejoExpediente.add(campoNombreRespAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(740, 110, 205, 23));

        campoApellido1RespAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoApellido1RespAgregar.setEnabled(false);
        campoApellido1RespAgregar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoApellido1RespAgregarKeyTyped(evt);
            }
        });
        panelManejoExpediente.add(campoApellido1RespAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(740, 140, 205, 23));

        campoApellido2RespAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoApellido2RespAgregar.setEnabled(false);
        campoApellido2RespAgregar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoApellido2RespAgregarKeyTyped(evt);
            }
        });
        panelManejoExpediente.add(campoApellido2RespAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(740, 170, 205, 23));

        campoCedulaRespAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoCedulaRespAgregar.setEnabled(false);
        campoCedulaRespAgregar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoCedulaRespAgregarKeyTyped(evt);
            }
        });
        panelManejoExpediente.add(campoCedulaRespAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(740, 80, 205, 23));

        campoEmailRespAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoEmailRespAgregar.setEnabled(false);
        campoEmailRespAgregar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoEmailRespAgregarKeyTyped(evt);
            }
        });
        panelManejoExpediente.add(campoEmailRespAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(740, 230, 205, 23));

        btnNuevoEstAgregar.setText("Nuevo ");
        btnNuevoEstAgregar.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                btnNuevoEstAgregarMouseClicked(evt);
            }
        });
        panelManejoExpediente.add(btnNuevoEstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(560, 350, 95, 48));

        btnCancelarEstAgregar.setText("Cancelar");
        btnCancelarEstAgregar.setEnabled(false);
        btnCancelarEstAgregar.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                btnCancelarEstAgregarMouseClicked(evt);
            }
        });
        btnCancelarEstAgregar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCancelarEstAgregarActionPerformed(evt);
            }
        });
        panelManejoExpediente.add(btnCancelarEstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(800, 350, 95, 48));

        btnCrearEstAgregar.setText("Crear");
        btnCrearEstAgregar.setEnabled(false);
        btnCrearEstAgregar.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                btnCrearEstAgregarMouseClicked(evt);
            }
        });
        panelManejoExpediente.add(btnCrearEstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(680, 350, 95, 48));

        tel1EstAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        tel1EstAgregar.setText("Teléfono 1:");
        panelManejoExpediente.add(tel1EstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 300, -1, -1));

        tel2EstAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        tel2EstAgregar.setText("Teléfono 2:");
        panelManejoExpediente.add(tel2EstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 330, -1, -1));

        tel1RespAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        tel1RespAgregar.setText("Teléfono:");
        panelManejoExpediente.add(tel1RespAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 270, -1, -1));

        campoTel1EstAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoTel1EstAgregar.setEnabled(false);
        campoTel1EstAgregar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoTel1EstAgregarKeyTyped(evt);
            }
        });
        panelManejoExpediente.add(campoTel1EstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 290, 205, -1));

        campoTel2EstAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoTel2EstAgregar.setEnabled(false);
        campoTel2EstAgregar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoTel2EstAgregarKeyTyped(evt);
            }
        });
        panelManejoExpediente.add(campoTel2EstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 320, 205, -1));

        campoTelRespAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoTelRespAgregar.setEnabled(false);
        campoTelRespAgregar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoTelRespAgregarKeyTyped(evt);
            }
        });
        panelManejoExpediente.add(campoTelRespAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(740, 260, 205, 23));

        astNombreAgregar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Img/asterisco.png"))); // NOI18N
        astNombreAgregar.setToolTipText("Espacio requerido");
        panelManejoExpediente.add(astNombreAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 120, -1, -1));

        astApellido1Agregar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Img/asterisco.png"))); // NOI18N
        astApellido1Agregar.setToolTipText("Espacio requerido");
        panelManejoExpediente.add(astApellido1Agregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 150, -1, -1));

        astCedulaAgregar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Img/asterisco.png"))); // NOI18N
        astCedulaAgregar.setToolTipText("Espacio requerido");
        panelManejoExpediente.add(astCedulaAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(120, 90, -1, -1));

        astFechaNacEstAgregar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Img/asterisco.png"))); // NOI18N
        astFechaNacEstAgregar.setToolTipText("Espacio requerido");
        panelManejoExpediente.add(astFechaNacEstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(200, 210, -1, -1));

        astTel1EstAgregar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Img/asterisco.png"))); // NOI18N
        astTel1EstAgregar.setToolTipText("Espacio requerido");
        panelManejoExpediente.add(astTel1EstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(140, 300, -1, -1));

        astCorreoAgregar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Img/asterisco.png"))); // NOI18N
        astCorreoAgregar.setToolTipText("Espacio requerido");
        panelManejoExpediente.add(astCorreoAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(200, 240, -1, -1));

        astNombreRespAgregar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Img/asterisco.png"))); // NOI18N
        astNombreRespAgregar.setToolTipText("Espacio requerido");
        panelManejoExpediente.add(astNombreRespAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(680, 120, -1, -1));

        astApellido1RespAgregar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Img/asterisco.png"))); // NOI18N
        astApellido1RespAgregar.setToolTipText("Espacio requerido");
        panelManejoExpediente.add(astApellido1RespAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(680, 150, -1, -1));

        astCedulaRespAgregar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Img/asterisco.png"))); // NOI18N
        astCedulaRespAgregar.setToolTipText("Espacio requerido");
        panelManejoExpediente.add(astCedulaRespAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(630, 90, -1, -1));

        astFechaNacRespAgregar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Img/asterisco.png"))); // NOI18N
        astFechaNacRespAgregar.setToolTipText("Espacio requerido");
        panelManejoExpediente.add(astFechaNacRespAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(710, 210, -1, -1));

        astCorreoRespAgregar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Img/asterisco.png"))); // NOI18N
        astCorreoRespAgregar.setToolTipText("Espacio requerido");
        panelManejoExpediente.add(astCorreoRespAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(610, 240, -1, -1));

        astTelRespAgregar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Img/asterisco.png"))); // NOI18N
        astTelRespAgregar.setToolTipText("Espacio requerido");
        panelManejoExpediente.add(astTelRespAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(550, 270, -1, -1));

        correoEst2Agregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        correoEst2Agregar.setText("Correo electrónico 2:");
        panelManejoExpediente.add(correoEst2Agregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 270, -1, -1));

        campoEmailEst2Agregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoEmailEst2Agregar.setEnabled(false);
        campoEmailEst2Agregar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoEmailEst2AgregarKeyTyped(evt);
            }
        });
        panelManejoExpediente.add(campoEmailEst2Agregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 260, 205, -1));

        estadoEstAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        estadoEstAgregar.setText("Estado del estudiante:");
        panelManejoExpediente.add(estadoEstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 370, -1, -1));

        astEstadoEstAgregar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Img/asterisco.png"))); // NOI18N
        astEstadoEstAgregar.setToolTipText("Espacio requerido");
        panelManejoExpediente.add(astEstadoEstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(200, 370, 10, -1));

        estadoActivoEstAgregar.setText("Activo");
        estadoActivoEstAgregar.setEnabled(false);
        estadoActivoEstAgregar.setOpaque(false);
        estadoActivoEstAgregar.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                estadoActivoEstAgregarMouseClicked(evt);
            }
        });
        panelManejoExpediente.add(estadoActivoEstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 370, -1, 20));

        estadoInactivoEstAgregar.setText("Inactivo");
        estadoInactivoEstAgregar.setEnabled(false);
        estadoInactivoEstAgregar.setOpaque(false);
        estadoInactivoEstAgregar.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                estadoInactivoEstAgregarMouseClicked(evt);
            }
        });
        panelManejoExpediente.add(estadoInactivoEstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(360, 370, -1, 20));

        campoFechaNacEstAgregar.setToolTipText("");
        campoFechaNacEstAgregar.setDateFormatString("dd-MM-yyyy");
        campoFechaNacEstAgregar.setEnabled(false);
        campoFechaNacEstAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoFechaNacEstAgregar.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseReleased(java.awt.event.MouseEvent evt) {
                campoFechaNacEstAgregarMouseReleased(evt);
            }
        });
        campoFechaNacEstAgregar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoFechaNacEstAgregarKeyTyped(evt);
            }
        });
        panelManejoExpediente.add(campoFechaNacEstAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 200, 205, 23));

        campoFechaNacRespAgregar.setDateFormatString("dd-MM-yyyy");
        campoFechaNacRespAgregar.setEnabled(false);
        campoFechaNacRespAgregar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        panelManejoExpediente.add(campoFechaNacRespAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(740, 200, 205, 23));

        javax.swing.GroupLayout panelCrearExpedienteLayout = new javax.swing.GroupLayout(panelCrearExpediente);
        panelCrearExpediente.setLayout(panelCrearExpedienteLayout);
        panelCrearExpedienteLayout.setHorizontalGroup(
            panelCrearExpedienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 1224, Short.MAX_VALUE)
            .addGroup(panelCrearExpedienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelCrearExpedienteLayout.createSequentialGroup()
                    .addContainerGap(104, Short.MAX_VALUE)
                    .addComponent(panelManejoExpediente, javax.swing.GroupLayout.PREFERRED_SIZE, 1015, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(105, Short.MAX_VALUE)))
        );
        panelCrearExpedienteLayout.setVerticalGroup(
            panelCrearExpedienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 484, Short.MAX_VALUE)
            .addGroup(panelCrearExpedienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelCrearExpedienteLayout.createSequentialGroup()
                    .addContainerGap(28, Short.MAX_VALUE)
                    .addComponent(panelManejoExpediente, javax.swing.GroupLayout.PREFERRED_SIZE, 421, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(35, Short.MAX_VALUE)))
        );

        panelOpcionesEstudiante.addTab("Crear Expediente", panelCrearExpediente);

        panelActualizarExpediente2.setBackground(new java.awt.Color(255, 255, 255));

        panelManejoExpediente2.setBackground(new java.awt.Color(255, 255, 255));
        panelManejoExpediente2.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true), "Actualización de Expediente de Estudiante", javax.swing.border.TitledBorder.LEFT, javax.swing.border.TitledBorder.TOP, new java.awt.Font("Calibri", 1, 18))); // NOI18N
        panelManejoExpediente2.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        nombreEstAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        nombreEstAct.setText("Nombre:");
        panelManejoExpediente2.add(nombreEstAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 570, -1, -1));

        apellido1EstAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        apellido1EstAct.setText("Primer Apellido:");
        panelManejoExpediente2.add(apellido1EstAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 600, 90, -1));

        apellido2EstAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        apellido2EstAct.setText("Segundo Apellido:");
        panelManejoExpediente2.add(apellido2EstAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 630, -1, -1));

        cedulaEstAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        cedulaEstAct.setText("Cédula:");
        panelManejoExpediente2.add(cedulaEstAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 540, 50, -1));

        fechaNacEstAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        fechaNacEstAct.setText("Fecha de Nacimiento:");
        panelManejoExpediente2.add(fechaNacEstAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 660, 130, -1));

        correoEst1Act.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        correoEst1Act.setText("Correo electrónico 1:");
        panelManejoExpediente2.add(correoEst1Act, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 690, 120, -1));

        InfoEstAct.setFont(new java.awt.Font("Calibri", 1, 16)); // NOI18N
        InfoEstAct.setText("Información a actualizar del estudiante ");
        panelManejoExpediente2.add(InfoEstAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 470, -1, 20));

        InfoRespAct.setFont(new java.awt.Font("Calibri", 1, 16)); // NOI18N
        InfoRespAct.setText("Información adicional a actualizar en caso de ser menor");
        panelManejoExpediente2.add(InfoRespAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(530, 470, -1, 20));

        nombreRespAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        nombreRespAct.setText("Nombre del mayor responsable:");
        panelManejoExpediente2.add(nombreRespAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 560, -1, -1));

        apellido1RespAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        apellido1RespAct.setText("Primer Apellido del responsable:");
        panelManejoExpediente2.add(apellido1RespAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 590, -1, -1));

        apellido2RespAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        apellido2RespAct.setText("Segundo apellido del responsable:");
        panelManejoExpediente2.add(apellido2RespAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 620, -1, -1));

        cedulaRespAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        cedulaRespAct.setText("Cédula del responsable:");
        panelManejoExpediente2.add(cedulaRespAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 530, -1, -1));

        fechaNacRespAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        fechaNacRespAct.setText("Fecha de nacimiento del responsable:");
        panelManejoExpediente2.add(fechaNacRespAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 650, -1, -1));

        correoRespAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        correoRespAct.setText("Correo electrónico:");
        panelManejoExpediente2.add(correoRespAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 680, -1, -1));

        campoNombreEstAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoNombreEstAct.setCursor(new java.awt.Cursor(java.awt.Cursor.TEXT_CURSOR));
        campoNombreEstAct.setEnabled(false);
        campoNombreEstAct.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                campoNombreEstActKeyReleased(evt);
            }
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoNombreEstActKeyTyped(evt);
            }
        });
        panelManejoExpediente2.add(campoNombreEstAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 560, 205, -1));

        campoApellido1EstAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoApellido1EstAct.setEnabled(false);
        campoApellido1EstAct.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                campoApellido1EstActActionPerformed(evt);
            }
        });
        campoApellido1EstAct.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoApellido1EstActKeyTyped(evt);
            }
        });
        panelManejoExpediente2.add(campoApellido1EstAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 590, 205, -1));

        campoApellido2EstAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoApellido2EstAct.setEnabled(false);
        campoApellido2EstAct.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoApellido2EstActKeyTyped(evt);
            }
        });
        panelManejoExpediente2.add(campoApellido2EstAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 620, 205, -1));

        campoCedulaEstAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoCedulaEstAct.setEnabled(false);
        campoCedulaEstAct.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoCedulaEstActKeyTyped(evt);
            }
        });
        panelManejoExpediente2.add(campoCedulaEstAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 530, 205, -1));

        campoEmailEst1Act.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoEmailEst1Act.setEnabled(false);
        campoEmailEst1Act.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoEmailEst1ActKeyTyped(evt);
            }
        });
        panelManejoExpediente2.add(campoEmailEst1Act, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 680, 205, -1));

        campoNombreRespAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoNombreRespAct.setEnabled(false);
        campoNombreRespAct.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoNombreRespActKeyTyped(evt);
            }
        });
        panelManejoExpediente2.add(campoNombreRespAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(740, 550, 205, 23));

        campoApellido1RespAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoApellido1RespAct.setEnabled(false);
        campoApellido1RespAct.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoApellido1RespActKeyTyped(evt);
            }
        });
        panelManejoExpediente2.add(campoApellido1RespAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(740, 580, 205, 23));

        campoApellido2RespAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoApellido2RespAct.setEnabled(false);
        campoApellido2RespAct.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoApellido2RespActKeyTyped(evt);
            }
        });
        panelManejoExpediente2.add(campoApellido2RespAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(740, 610, 205, 23));

        campoCedulaRespAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoCedulaRespAct.setEnabled(false);
        campoCedulaRespAct.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoCedulaRespActKeyTyped(evt);
            }
        });
        panelManejoExpediente2.add(campoCedulaRespAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(740, 520, 205, 23));

        campoEmailRespAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoEmailRespAct.setEnabled(false);
        campoEmailRespAct.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoEmailRespActKeyTyped(evt);
            }
        });
        panelManejoExpediente2.add(campoEmailRespAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(740, 670, 205, 23));

        btnActualizarEst.setText("Actualizar");
        btnActualizarEst.setEnabled(false);
        btnActualizarEst.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                btnActualizarEstMouseClicked(evt);
            }
        });
        panelManejoExpediente2.add(btnActualizarEst, new org.netbeans.lib.awtextra.AbsoluteConstraints(610, 790, 95, 48));

        btnCancelarEstAct.setText("Cancelar");
        btnCancelarEstAct.setEnabled(false);
        btnCancelarEstAct.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                btnCancelarEstActMouseClicked(evt);
            }
        });
        btnCancelarEstAct.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCancelarEstActActionPerformed(evt);
            }
        });
        panelManejoExpediente2.add(btnCancelarEstAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(780, 790, 95, 48));

        tel1EstAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        tel1EstAct.setText("Teléfono 1:");
        panelManejoExpediente2.add(tel1EstAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 750, -1, -1));

        tel2EstAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        tel2EstAct.setText("Teléfono 2:");
        panelManejoExpediente2.add(tel2EstAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 780, -1, -1));

        tel1RespAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        tel1RespAct.setText("Teléfono:");
        panelManejoExpediente2.add(tel1RespAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 710, -1, -1));

        campoTel1EstAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoTel1EstAct.setEnabled(false);
        campoTel1EstAct.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoTel1EstActKeyTyped(evt);
            }
        });
        panelManejoExpediente2.add(campoTel1EstAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 740, 205, -1));

        campoTel2EstAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoTel2EstAct.setEnabled(false);
        campoTel2EstAct.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoTel2EstActKeyTyped(evt);
            }
        });
        panelManejoExpediente2.add(campoTel2EstAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 770, 205, -1));

        campoTelRespAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoTelRespAct.setEnabled(false);
        campoTelRespAct.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoTelRespActKeyTyped(evt);
            }
        });
        panelManejoExpediente2.add(campoTelRespAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(740, 700, 205, 23));

        correoEst2Act.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        correoEst2Act.setText("Correo electrónico 2:");
        panelManejoExpediente2.add(correoEst2Act, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 720, -1, -1));

        campoEmailEst2Act.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoEmailEst2Act.setEnabled(false);
        campoEmailEst2Act.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoEmailEst2ActKeyTyped(evt);
            }
        });
        panelManejoExpediente2.add(campoEmailEst2Act, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 710, 205, -1));

        estadoEstAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        estadoEstAct.setText("Estado del estudiante:");
        panelManejoExpediente2.add(estadoEstAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 820, -1, 20));

        estadoActivoEstAct.setText("Activo");
        estadoActivoEstAct.setEnabled(false);
        estadoActivoEstAct.setOpaque(false);
        estadoActivoEstAct.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                estadoActivoEstActMouseClicked(evt);
            }
        });
        panelManejoExpediente2.add(estadoActivoEstAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 820, -1, -1));

        estadoInactivoEstAct.setText("Inactivo");
        estadoInactivoEstAct.setEnabled(false);
        estadoInactivoEstAct.setOpaque(false);
        estadoInactivoEstAct.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                estadoInactivoEstActMouseClicked(evt);
            }
        });
        panelManejoExpediente2.add(estadoInactivoEstAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(360, 820, -1, -1));

        campoFechaNacEstAct.setToolTipText("");
        campoFechaNacEstAct.setDateFormatString("dd-MM-yyyy");
        campoFechaNacEstAct.setEnabled(false);
        campoFechaNacEstAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoFechaNacEstAct.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseReleased(java.awt.event.MouseEvent evt) {
                campoFechaNacEstActMouseReleased(evt);
            }
        });
        campoFechaNacEstAct.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                campoFechaNacEstActKeyTyped(evt);
            }
        });
        panelManejoExpediente2.add(campoFechaNacEstAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 650, 205, 23));

        campoFechaNacRespAct.setDateFormatString("dd-MM-yyyy");
        campoFechaNacRespAct.setEnabled(false);
        campoFechaNacRespAct.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        panelManejoExpediente2.add(campoFechaNacRespAct, new org.netbeans.lib.awtextra.AbsoluteConstraints(740, 640, 205, 23));

        busquedaEstActualizar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        busquedaEstActualizar.setText("Búsqueda:");
        panelManejoExpediente2.add(busquedaEstActualizar, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 320, -1, -1));

        campoBusquedaEstActualizar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoBusquedaEstActualizar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                campoBusquedaEstActualizarKeyReleased(evt);
            }
        });
        panelManejoExpediente2.add(campoBusquedaEstActualizar, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 310, 460, 30));

        scrollEstudiantesActualizar.setBackground(new java.awt.Color(0, 153, 204));
        scrollEstudiantesActualizar.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(153, 153, 153), 1, true), "Seleccione el estudiante registrado a actualizar:", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.TOP, new java.awt.Font("Calibri", 1, 18), java.awt.Color.white)); // NOI18N

        tablaEstudiantesActualizar.setAutoCreateRowSorter(true);
        tablaEstudiantesActualizar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        tablaEstudiantesActualizar.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Estado", "Cédula del estudiante", "Estudiante", "Fecha de nacimiento del estudiante", "Correo #1 del estudiante", "Correo #2 del estudiante", "Teléfono #1 del estudiante", "Teléfono #2 del estudiante", "Cédula del responsable", "Responsable", "Fecha de nacimiento del responsable", "Correo del responsable", "Teléfono del responsable"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false, false, false, false, false, false, false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        tablaEstudiantesActualizar.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
        tablaEstudiantesActualizar.setGridColor(new java.awt.Color(0, 204, 204));
        tablaEstudiantesActualizar.getTableHeader().setResizingAllowed(false);
        tablaEstudiantesActualizar.getTableHeader().setReorderingAllowed(false);
        scrollEstudiantesActualizar.setViewportView(tablaEstudiantesActualizar);

        panelManejoExpediente2.add(scrollEstudiantesActualizar, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 60, 690, 210));

        javax.swing.GroupLayout panelActualizarExpediente2Layout = new javax.swing.GroupLayout(panelActualizarExpediente2);
        panelActualizarExpediente2.setLayout(panelActualizarExpediente2Layout);
        panelActualizarExpediente2Layout.setHorizontalGroup(
            panelActualizarExpediente2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panelActualizarExpediente2Layout.createSequentialGroup()
                .addGap(102, 102, 102)
                .addComponent(panelManejoExpediente2, javax.swing.GroupLayout.PREFERRED_SIZE, 1015, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(103, Short.MAX_VALUE))
        );
        panelActualizarExpediente2Layout.setVerticalGroup(
            panelActualizarExpediente2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelActualizarExpediente2Layout.createSequentialGroup()
                .addContainerGap(47, Short.MAX_VALUE)
                .addComponent(panelManejoExpediente2, javax.swing.GroupLayout.PREFERRED_SIZE, 905, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(41, 41, 41))
        );

        panelActualizarExpediente.setViewportView(panelActualizarExpediente2);

        panelOpcionesEstudiante.addTab("Actualizar Expediente", panelActualizarExpediente);

        panelEliminarExpediente.setBackground(new java.awt.Color(255, 255, 255));

        panelManejoExpediente3.setBackground(new java.awt.Color(255, 255, 255));
        panelManejoExpediente3.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true), "Borrado de Expediente de Estudiante", javax.swing.border.TitledBorder.LEFT, javax.swing.border.TitledBorder.TOP, new java.awt.Font("Calibri", 1, 18))); // NOI18N
        panelManejoExpediente3.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        busquedaEstEliminar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        busquedaEstEliminar.setText("Búsqueda:");
        panelManejoExpediente3.add(busquedaEstEliminar, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 320, -1, -1));

        campoBusquedaEstEliminar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoBusquedaEstEliminar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                campoBusquedaEstEliminarKeyReleased(evt);
            }
        });
        panelManejoExpediente3.add(campoBusquedaEstEliminar, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 310, 460, 30));

        scrollEstudiantesEliminar.setBackground(new java.awt.Color(0, 153, 204));
        scrollEstudiantesEliminar.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(153, 153, 153), 1, true), "Seleccione el estudiante registrado a eliminar:", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.TOP, new java.awt.Font("Calibri", 1, 18), java.awt.Color.white)); // NOI18N

        tablaEstudiantesEliminar.setAutoCreateRowSorter(true);
        tablaEstudiantesEliminar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        tablaEstudiantesEliminar.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Estado", "Cédula del estudiante", "Estudiante", "Fecha de nacimiento del estudiante", "Correo #1 del estudiante", "Correo #2 del estudiante", "Teléfono #1 del estudiante", "Teléfono #2 del estudiante", "Cédula del responsable", "Responsable", "Fecha de nacimiento del responsable", "Correo del responsable", "Teléfono del responsable"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false, false, false, false, false, false, false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        tablaEstudiantesEliminar.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
        tablaEstudiantesEliminar.setGridColor(new java.awt.Color(0, 204, 204));
        tablaEstudiantesEliminar.getTableHeader().setResizingAllowed(false);
        tablaEstudiantesEliminar.getTableHeader().setReorderingAllowed(false);
        scrollEstudiantesEliminar.setViewportView(tablaEstudiantesEliminar);

        panelManejoExpediente3.add(scrollEstudiantesEliminar, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 60, 690, 210));

        javax.swing.GroupLayout panelEliminarExpedienteLayout = new javax.swing.GroupLayout(panelEliminarExpediente);
        panelEliminarExpediente.setLayout(panelEliminarExpedienteLayout);
        panelEliminarExpedienteLayout.setHorizontalGroup(
            panelEliminarExpedienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panelEliminarExpedienteLayout.createSequentialGroup()
                .addGap(104, 104, 104)
                .addComponent(panelManejoExpediente3, javax.swing.GroupLayout.PREFERRED_SIZE, 1013, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(107, Short.MAX_VALUE))
        );
        panelEliminarExpedienteLayout.setVerticalGroup(
            panelEliminarExpedienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelEliminarExpedienteLayout.createSequentialGroup()
                .addContainerGap(50, Short.MAX_VALUE)
                .addComponent(panelManejoExpediente3, javax.swing.GroupLayout.PREFERRED_SIZE, 394, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(40, 40, 40))
        );

        panelOpcionesEstudiante.addTab("Eliminar Expediente", panelEliminarExpediente);

        panelMostrarExpediente.setBackground(new java.awt.Color(255, 255, 255));

        panelManejoExpediente4.setBackground(new java.awt.Color(255, 255, 255));
        panelManejoExpediente4.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true), "Lista de Expedientes de Estudiantes", javax.swing.border.TitledBorder.LEFT, javax.swing.border.TitledBorder.TOP, new java.awt.Font("Calibri", 1, 18))); // NOI18N
        panelManejoExpediente4.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        busquedaEstMostrar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        busquedaEstMostrar.setText("Búsqueda:");
        panelManejoExpediente4.add(busquedaEstMostrar, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 320, -1, -1));

        campoBusquedaEstMostrar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoBusquedaEstMostrar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                campoBusquedaEstMostrarKeyReleased(evt);
            }
        });
        panelManejoExpediente4.add(campoBusquedaEstMostrar, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 310, 460, 30));

        scrollEstudiantesMostrar.setBackground(new java.awt.Color(0, 153, 204));
        scrollEstudiantesMostrar.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(153, 153, 153), 1, true), "Estudiantes registrados:", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.TOP, new java.awt.Font("Calibri", 1, 18), java.awt.Color.white)); // NOI18N

        tablaEstudiantesMostrar.setAutoCreateRowSorter(true);
        tablaEstudiantesMostrar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        tablaEstudiantesMostrar.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Estado", "Cédula del estudiante", "Estudiante", "Fecha de nacimiento del estudiante", "Correo #1 del estudiante", "Correo #2 del estudiante", "Teléfono #1 del estudiante", "Teléfono #2 del estudiante", "Cédula del responsable", "Responsable", "Fecha de nacimiento del responsable", "Correo del responsable", "Teléfono del responsable"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false, false, false, false, false, false, false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        tablaEstudiantesMostrar.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
        tablaEstudiantesMostrar.setGridColor(new java.awt.Color(0, 204, 204));
        tablaEstudiantesMostrar.getTableHeader().setResizingAllowed(false);
        tablaEstudiantesMostrar.getTableHeader().setReorderingAllowed(false);
        scrollEstudiantesMostrar.setViewportView(tablaEstudiantesMostrar);

        panelManejoExpediente4.add(scrollEstudiantesMostrar, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 60, 690, 210));

        javax.swing.GroupLayout panelMostrarExpedienteLayout = new javax.swing.GroupLayout(panelMostrarExpediente);
        panelMostrarExpediente.setLayout(panelMostrarExpedienteLayout);
        panelMostrarExpedienteLayout.setHorizontalGroup(
            panelMostrarExpedienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panelMostrarExpedienteLayout.createSequentialGroup()
                .addGap(104, 104, 104)
                .addComponent(panelManejoExpediente4, javax.swing.GroupLayout.PREFERRED_SIZE, 1013, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(107, Short.MAX_VALUE))
        );
        panelMostrarExpedienteLayout.setVerticalGroup(
            panelMostrarExpedienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelMostrarExpedienteLayout.createSequentialGroup()
                .addContainerGap(50, Short.MAX_VALUE)
                .addComponent(panelManejoExpediente4, javax.swing.GroupLayout.PREFERRED_SIZE, 394, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(40, 40, 40))
        );

        panelOpcionesEstudiante.addTab("Mostrar Expediente", panelMostrarExpediente);

        panelAsignacionPromociones2.setBackground(new java.awt.Color(255, 255, 255));

        panelManejoAsignacion.setBackground(new java.awt.Color(255, 255, 255));
        panelManejoAsignacion.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true), "Área de Asignación de promociones al estudiante", javax.swing.border.TitledBorder.LEFT, javax.swing.border.TitledBorder.TOP, new java.awt.Font("Calibri", 1, 18))); // NOI18N
        panelManejoAsignacion.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        busquedaEstAsignar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        busquedaEstAsignar.setText("Búsqueda:");
        panelManejoAsignacion.add(busquedaEstAsignar, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 340, -1, -1));

        campoBusquedaEstAsignar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoBusquedaEstAsignar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                campoBusquedaEstAsignarKeyReleased(evt);
            }
        });
        panelManejoAsignacion.add(campoBusquedaEstAsignar, new org.netbeans.lib.awtextra.AbsoluteConstraints(150, 330, 340, 30));

        scrollEstudiantesAsignar.setBackground(new java.awt.Color(0, 153, 204));
        scrollEstudiantesAsignar.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(153, 153, 153), 1, true), "Estudiantes registrados:", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.TOP, new java.awt.Font("Calibri", 1, 18), java.awt.Color.white)); // NOI18N

        tablaEstudiantesAsignar.setAutoCreateRowSorter(true);
        tablaEstudiantesAsignar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        tablaEstudiantesAsignar.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Cédula", "Estudiante"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        tablaEstudiantesAsignar.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
        tablaEstudiantesAsignar.setGridColor(new java.awt.Color(0, 204, 204));
        tablaEstudiantesAsignar.getTableHeader().setResizingAllowed(false);
        tablaEstudiantesAsignar.getTableHeader().setReorderingAllowed(false);
        scrollEstudiantesAsignar.setViewportView(tablaEstudiantesAsignar);

        panelManejoAsignacion.add(scrollEstudiantesAsignar, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 100, 450, 210));

        campoBusquedaPromocionAsignar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoBusquedaPromocionAsignar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                campoBusquedaPromocionAsignarKeyReleased(evt);
            }
        });
        panelManejoAsignacion.add(campoBusquedaPromocionAsignar, new org.netbeans.lib.awtextra.AbsoluteConstraints(620, 330, 340, 30));

        busquedaPromocionAsignar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        busquedaPromocionAsignar.setText("Búsqueda:");
        panelManejoAsignacion.add(busquedaPromocionAsignar, new org.netbeans.lib.awtextra.AbsoluteConstraints(530, 340, -1, -1));

        scrollPromocionesAsignar.setBackground(new java.awt.Color(0, 153, 204));
        scrollPromocionesAsignar.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(153, 153, 153), 1, true), "Promociones registradas:", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.TOP, new java.awt.Font("Calibri", 1, 18), java.awt.Color.white)); // NOI18N

        tablaPromocionesAsignar.setAutoCreateRowSorter(true);
        tablaPromocionesAsignar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        tablaPromocionesAsignar.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Código", "Promoción", "Monto"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        tablaPromocionesAsignar.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
        tablaPromocionesAsignar.setGridColor(new java.awt.Color(0, 204, 204));
        tablaPromocionesAsignar.getTableHeader().setResizingAllowed(false);
        tablaPromocionesAsignar.getTableHeader().setReorderingAllowed(false);
        scrollPromocionesAsignar.setViewportView(tablaPromocionesAsignar);

        panelManejoAsignacion.add(scrollPromocionesAsignar, new org.netbeans.lib.awtextra.AbsoluteConstraints(520, 100, 450, 210));

        seleccionPromocion.setFont(new java.awt.Font("Calibri", 1, 16)); // NOI18N
        seleccionPromocion.setText("Seleccione luego la promoción a asignarle al estudiante:");
        panelManejoAsignacion.add(seleccionPromocion, new org.netbeans.lib.awtextra.AbsoluteConstraints(550, 70, -1, -1));

        seleccionEstudiante.setFont(new java.awt.Font("Calibri", 1, 16)); // NOI18N
        seleccionEstudiante.setText("Seleccione primero el estudiante:");
        panelManejoAsignacion.add(seleccionEstudiante, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 70, -1, -1));

        btnCancelarAsignacion.setText("Cancelar");
        btnCancelarAsignacion.setEnabled(false);
        btnCancelarAsignacion.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                btnCancelarAsignacionMouseClicked(evt);
            }
        });
        btnCancelarAsignacion.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCancelarAsignacionActionPerformed(evt);
            }
        });
        panelManejoAsignacion.add(btnCancelarAsignacion, new org.netbeans.lib.awtextra.AbsoluteConstraints(530, 500, 130, 50));

        btnRegistrarAsignacion.setText("Registrar asignación");
        btnRegistrarAsignacion.setEnabled(false);
        btnRegistrarAsignacion.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                btnRegistrarAsignacionMouseClicked(evt);
            }
        });
        panelManejoAsignacion.add(btnRegistrarAsignacion, new org.netbeans.lib.awtextra.AbsoluteConstraints(360, 500, 130, 50));

        campoMesPromocion.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        panelManejoAsignacion.add(campoMesPromocion, new org.netbeans.lib.awtextra.AbsoluteConstraints(520, 430, -1, -1));

        campoAnioPromocion.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        panelManejoAsignacion.add(campoAnioPromocion, new org.netbeans.lib.awtextra.AbsoluteConstraints(630, 430, -1, -1));

        jLabel7.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        jLabel7.setText("Período de validez de la promoción para el estudiante:");
        panelManejoAsignacion.add(jLabel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(190, 430, -1, -1));

        javax.swing.GroupLayout panelAsignacionPromociones2Layout = new javax.swing.GroupLayout(panelAsignacionPromociones2);
        panelAsignacionPromociones2.setLayout(panelAsignacionPromociones2Layout);
        panelAsignacionPromociones2Layout.setHorizontalGroup(
            panelAsignacionPromociones2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panelAsignacionPromociones2Layout.createSequentialGroup()
                .addGap(103, 103, 103)
                .addComponent(panelManejoAsignacion, javax.swing.GroupLayout.PREFERRED_SIZE, 1013, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(106, Short.MAX_VALUE))
        );
        panelAsignacionPromociones2Layout.setVerticalGroup(
            panelAsignacionPromociones2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelAsignacionPromociones2Layout.createSequentialGroup()
                .addContainerGap(49, Short.MAX_VALUE)
                .addComponent(panelManejoAsignacion, javax.swing.GroupLayout.PREFERRED_SIZE, 590, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(34, 34, 34))
        );

        panelAsignacionPromociones.setViewportView(panelAsignacionPromociones2);

        panelOpcionesEstudiante.addTab("Asignación de Promociones", panelAsignacionPromociones);

        panelDesasignacionCursos2.setBackground(new java.awt.Color(255, 255, 255));

        panelManejoDesasignacion.setBackground(new java.awt.Color(255, 255, 255));
        panelManejoDesasignacion.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true), "Área de Desasignación de promociones asociadas al estudiante", javax.swing.border.TitledBorder.LEFT, javax.swing.border.TitledBorder.TOP, new java.awt.Font("Calibri", 1, 18))); // NOI18N
        panelManejoDesasignacion.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        busquedaEstDesasignar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        busquedaEstDesasignar.setText("Búsqueda:");
        panelManejoDesasignacion.add(busquedaEstDesasignar, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 340, -1, -1));

        campoBusquedaEstDesasignar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoBusquedaEstDesasignar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                campoBusquedaEstDesasignarActionPerformed(evt);
            }
        });
        campoBusquedaEstDesasignar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                campoBusquedaEstDesasignarKeyReleased(evt);
            }
        });
        panelManejoDesasignacion.add(campoBusquedaEstDesasignar, new org.netbeans.lib.awtextra.AbsoluteConstraints(150, 330, 340, 30));

        scrollEstudiantesDesasignar.setBackground(new java.awt.Color(0, 153, 204));
        scrollEstudiantesDesasignar.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(153, 153, 153), 1, true), "Estudiantes registrados:", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.TOP, new java.awt.Font("Calibri", 1, 18), java.awt.Color.white)); // NOI18N

        tablaEstudiantesDesasignar.setAutoCreateRowSorter(true);
        tablaEstudiantesDesasignar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        tablaEstudiantesDesasignar.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Cédula", "Profesor"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        tablaEstudiantesDesasignar.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
        tablaEstudiantesDesasignar.setGridColor(new java.awt.Color(0, 204, 204));
        tablaEstudiantesDesasignar.getTableHeader().setResizingAllowed(false);
        tablaEstudiantesDesasignar.getTableHeader().setReorderingAllowed(false);
        scrollEstudiantesDesasignar.setViewportView(tablaEstudiantesDesasignar);

        panelManejoDesasignacion.add(scrollEstudiantesDesasignar, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 100, 450, 210));

        campoBusquedaPromocionDesasignar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoBusquedaPromocionDesasignar.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                campoBusquedaPromocionDesasignarKeyReleased(evt);
            }
        });
        panelManejoDesasignacion.add(campoBusquedaPromocionDesasignar, new org.netbeans.lib.awtextra.AbsoluteConstraints(620, 330, 340, 30));

        busquedaPromocionDesasignar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        busquedaPromocionDesasignar.setText("Búsqueda:");
        panelManejoDesasignacion.add(busquedaPromocionDesasignar, new org.netbeans.lib.awtextra.AbsoluteConstraints(530, 340, -1, -1));

        seleccionPromocionDesasignacion.setFont(new java.awt.Font("Calibri", 1, 16)); // NOI18N
        seleccionPromocionDesasignacion.setText("Seleccione luego la promoción a desasignar del estudiante:");
        panelManejoDesasignacion.add(seleccionPromocionDesasignacion, new org.netbeans.lib.awtextra.AbsoluteConstraints(540, 70, -1, -1));

        seleccioEstudianteDesasignacion.setFont(new java.awt.Font("Calibri", 1, 16)); // NOI18N
        seleccioEstudianteDesasignacion.setText("Seleccione primero el estudiante con promociones asociadas:");
        panelManejoDesasignacion.add(seleccioEstudianteDesasignacion, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 70, -1, -1));

        btnCancelarDesasignacion.setText("Cancelar");
        btnCancelarDesasignacion.setEnabled(false);
        btnCancelarDesasignacion.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                btnCancelarDesasignacionMouseClicked(evt);
            }
        });
        btnCancelarDesasignacion.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnCancelarDesasignacionActionPerformed(evt);
            }
        });
        panelManejoDesasignacion.add(btnCancelarDesasignacion, new org.netbeans.lib.awtextra.AbsoluteConstraints(530, 430, 140, 50));

        btnRealizarDesasignacion.setText("Realizar desasignación");
        btnRealizarDesasignacion.setEnabled(false);
        btnRealizarDesasignacion.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                btnRealizarDesasignacionMouseClicked(evt);
            }
        });
        panelManejoDesasignacion.add(btnRealizarDesasignacion, new org.netbeans.lib.awtextra.AbsoluteConstraints(349, 430, -1, 50));

        scrollPromocionesDesasignar.setBackground(new java.awt.Color(0, 153, 204));
        scrollPromocionesDesasignar.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(153, 153, 153), 1, true), "Promociones registradas:", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.TOP, new java.awt.Font("Calibri", 1, 18), java.awt.Color.white)); // NOI18N

        tablaPromocionesDesasignar.setAutoCreateRowSorter(true);
        tablaPromocionesDesasignar.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        tablaPromocionesDesasignar.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Código", "Promoción", "Monto"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        tablaPromocionesDesasignar.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
        tablaPromocionesDesasignar.setGridColor(new java.awt.Color(0, 204, 204));
        tablaPromocionesDesasignar.getTableHeader().setResizingAllowed(false);
        tablaPromocionesDesasignar.getTableHeader().setReorderingAllowed(false);
        scrollPromocionesDesasignar.setViewportView(tablaPromocionesDesasignar);

        panelManejoDesasignacion.add(scrollPromocionesDesasignar, new org.netbeans.lib.awtextra.AbsoluteConstraints(520, 100, 450, 210));

        javax.swing.GroupLayout panelDesasignacionCursos2Layout = new javax.swing.GroupLayout(panelDesasignacionCursos2);
        panelDesasignacionCursos2.setLayout(panelDesasignacionCursos2Layout);
        panelDesasignacionCursos2Layout.setHorizontalGroup(
            panelDesasignacionCursos2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panelDesasignacionCursos2Layout.createSequentialGroup()
                .addGap(103, 103, 103)
                .addComponent(panelManejoDesasignacion, javax.swing.GroupLayout.PREFERRED_SIZE, 1013, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(106, Short.MAX_VALUE))
        );
        panelDesasignacionCursos2Layout.setVerticalGroup(
            panelDesasignacionCursos2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelDesasignacionCursos2Layout.createSequentialGroup()
                .addContainerGap(49, Short.MAX_VALUE)
                .addComponent(panelManejoDesasignacion, javax.swing.GroupLayout.PREFERRED_SIZE, 525, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(34, 34, 34))
        );

        panelDesasignacionPromociones.setViewportView(panelDesasignacionCursos2);

        panelOpcionesEstudiante.addTab("Desasignación de Promociones", panelDesasignacionPromociones);

        panelMostrarAsignacionesPromociones.setBackground(new java.awt.Color(255, 255, 255));

        panelManejoMostrarAsignaciones.setBackground(new java.awt.Color(255, 255, 255));
        panelManejoMostrarAsignaciones.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(204, 204, 204), 1, true), "Área de Búsqueda de Asignaciones Realizadas", javax.swing.border.TitledBorder.LEFT, javax.swing.border.TitledBorder.TOP, new java.awt.Font("Calibri", 1, 18))); // NOI18N
        panelManejoMostrarAsignaciones.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        scrollMostrarAsignaciones.setBackground(new java.awt.Color(0, 153, 204));
        scrollMostrarAsignaciones.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(153, 153, 153), 1, true), "Estudiantes con Promociones Asignadas:", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.TOP, new java.awt.Font("Calibri", 1, 18), java.awt.Color.white)); // NOI18N

        tablaMostrarAsignaciones.setAutoCreateRowSorter(true);
        tablaMostrarAsignaciones.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        tablaMostrarAsignaciones.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Estudiante", "Promoción asignada", "Vigencia"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        tablaMostrarAsignaciones.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
        tablaMostrarAsignaciones.setGridColor(new java.awt.Color(0, 204, 204));
        tablaMostrarAsignaciones.getTableHeader().setResizingAllowed(false);
        tablaMostrarAsignaciones.getTableHeader().setReorderingAllowed(false);
        scrollMostrarAsignaciones.setViewportView(tablaMostrarAsignaciones);

        panelManejoMostrarAsignaciones.add(scrollMostrarAsignaciones, new org.netbeans.lib.awtextra.AbsoluteConstraints(140, 100, 730, 210));

        campoBusqueda.setFont(new java.awt.Font("Calibri", 0, 14)); // NOI18N
        campoBusqueda.setEnabled(false);
        campoBusqueda.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                campoBusquedaKeyReleased(evt);
            }
        });
        panelManejoMostrarAsignaciones.add(campoBusqueda, new org.netbeans.lib.awtextra.AbsoluteConstraints(300, 330, 410, 30));

        asignacionMostrar.setFont(new java.awt.Font("Calibri", 1, 16)); // NOI18N
        asignacionMostrar.setText("Búsqueda de Promociones Asignadas a Estudiantes");
        panelManejoMostrarAsignaciones.add(asignacionMostrar, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 70, -1, -1));

        btnBusqueda.setText("Búsqueda:");
        btnBusqueda.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                btnBusquedaMouseClicked(evt);
            }
        });
        panelManejoMostrarAsignaciones.add(btnBusqueda, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 330, 90, 30));

        btnCancelarBusqueda.setText("Cancelar");
        btnCancelarBusqueda.setEnabled(false);
        btnCancelarBusqueda.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                btnCancelarBusquedaMouseClicked(evt);
            }
        });
        panelManejoMostrarAsignaciones.add(btnCancelarBusqueda, new org.netbeans.lib.awtextra.AbsoluteConstraints(750, 330, 90, 30));

        javax.swing.GroupLayout panelMostrarAsignacionesPromocionesLayout = new javax.swing.GroupLayout(panelMostrarAsignacionesPromociones);
        panelMostrarAsignacionesPromociones.setLayout(panelMostrarAsignacionesPromocionesLayout);
        panelMostrarAsignacionesPromocionesLayout.setHorizontalGroup(
            panelMostrarAsignacionesPromocionesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panelMostrarAsignacionesPromocionesLayout.createSequentialGroup()
                .addGap(102, 102, 102)
                .addComponent(panelManejoMostrarAsignaciones, javax.swing.GroupLayout.PREFERRED_SIZE, 1013, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(109, Short.MAX_VALUE))
        );
        panelMostrarAsignacionesPromocionesLayout.setVerticalGroup(
            panelMostrarAsignacionesPromocionesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelMostrarAsignacionesPromocionesLayout.createSequentialGroup()
                .addContainerGap(50, Short.MAX_VALUE)
                .addComponent(panelManejoMostrarAsignaciones, javax.swing.GroupLayout.PREFERRED_SIZE, 400, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(34, 34, 34))
        );

        panelOpcionesEstudiante.addTab("Mostrar Asignaciones Efectuadas", panelMostrarAsignacionesPromociones);

        javax.swing.GroupLayout panelImagenEstudiante2Layout = new javax.swing.GroupLayout(panelImagenEstudiante2);
        panelImagenEstudiante2.setLayout(panelImagenEstudiante2Layout);
        panelImagenEstudiante2Layout.setHorizontalGroup(
            panelImagenEstudiante2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelImagenEstudiante2Layout.createSequentialGroup()
                .addContainerGap(33, Short.MAX_VALUE)
                .addComponent(panelOpcionesEstudiante, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(38, 38, 38))
        );
        panelImagenEstudiante2Layout.setVerticalGroup(
            panelImagenEstudiante2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panelImagenEstudiante2Layout.createSequentialGroup()
                .addGap(32, 32, 32)
                .addComponent(panelOpcionesEstudiante, javax.swing.GroupLayout.PREFERRED_SIZE, 512, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(34, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(panelImagenEstudiante, javax.swing.GroupLayout.DEFAULT_SIZE, 1300, Short.MAX_VALUE)
            .addComponent(panelImagenEstudiante2, javax.swing.GroupLayout.DEFAULT_SIZE, 1300, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(panelImagenEstudiante, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(panelImagenEstudiante2, javax.swing.GroupLayout.DEFAULT_SIZE, 578, Short.MAX_VALUE))
        );

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-1316)/2, (screenSize.height-682)/2, 1316, 682);
    }// </editor-fold>//GEN-END:initComponents

    private void jLabel6MouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel6MouseEntered
        // TODO add your handling code here:
        Font font = new Font("Tahoma", Font.PLAIN, 11);
        Map attributes = font.getAttributes();
        attributes.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON);
        jLabel6.setFont(font.deriveFont(attributes));
        jLabel6.setForeground(new Color(0,0,204));
    }//GEN-LAST:event_jLabel6MouseEntered

    private void jLabel6MouseExited(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel6MouseExited
        // TODO add your handling code here:
        jLabel6.setFont(new Font("Tahoma", Font.PLAIN, 11));
        jLabel6.setForeground(new Color(0,0,0));
    }//GEN-LAST:event_jLabel6MouseExited

    private void jLabel6MousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel6MousePressed
        // TODO add your handling code here:
        VentanaPrincipal ob= new VentanaPrincipal();
        ob.setVisible(true);
        dispose();
    }//GEN-LAST:event_jLabel6MousePressed

    private void panelOpcionesEstudianteStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_panelOpcionesEstudianteStateChanged
        // TODO add your handling code here:
        Component comp = panelOpcionesEstudiante.getSelectedComponent();
        if (comp.equals(panelCrearExpediente)){
            cancelarOCrearExpediente();
        }
        else{
            if (comp.equals(panelActualizarExpediente)){
                cancelarOActualizarExpediente(1);
                cargarEstudiantes(tablaEstudiantesActualizar);
            }
            else{
                if(comp.equals(panelEliminarExpediente)){
                    limpiarPanelEliminarExpediente();
                    cargarEstudiantes(tablaEstudiantesEliminar);
                }
                else{
                    if(comp.equals(panelMostrarExpediente)){
                        limpiarPanelMostrarExpediente();
                        cargarEstudiantes(tablaEstudiantesMostrar);
                    }
                    else{
                        if(comp.equals(panelAsignacionPromociones)){
                            limpiarPanelAsignacionPromocion();
                            cargarEstudiantesAsignacion(tablaEstudiantesAsignar);
                        }
                        else{
                            if(comp.equals(panelDesasignacionPromociones)){
                                limpiarPanelDesasignacionPromocion();
                                cargarEstudiantesDesasignacion(tablaEstudiantesDesasignar);
                            }
                            else{
                                if(comp.equals(panelMostrarAsignacionesPromociones)){
                                    limpiarPanelMostrarAsignacion();
                                    cargarAsignaciones();
                                }
                            }
                        }
                    }
                }
            }
        }
    }//GEN-LAST:event_panelOpcionesEstudianteStateChanged

    private void campoTel2EstAgregarKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoTel2EstAgregarKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(Character.isDigit(c)||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoTel2EstAgregarKeyTyped

    private void campoTel1EstAgregarKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoTel1EstAgregarKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(Character.isDigit(c)||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoTel1EstAgregarKeyTyped

    private void btnCrearEstAgregarMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btnCrearEstAgregarMouseClicked
        // TODO add your handling code here:
        puedeIngresarExpediente();
    }//GEN-LAST:event_btnCrearEstAgregarMouseClicked

    private void btnCancelarEstAgregarMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btnCancelarEstAgregarMouseClicked
        // TODO add your handling code here:
        cancelarOCrearExpediente();
    }//GEN-LAST:event_btnCancelarEstAgregarMouseClicked

    private void btnNuevoEstAgregarMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btnNuevoEstAgregarMouseClicked
        // TODO add your handling code here:
        iniciarNuevoExpediente();
    }//GEN-LAST:event_btnNuevoEstAgregarMouseClicked

    private void campoEmailEst1AgregarKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoEmailEst1AgregarKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(!Character.isSpaceChar(c) ||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoEmailEst1AgregarKeyTyped

    private void campoCedulaEstAgregarKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoCedulaEstAgregarKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(Character.isLetter(c) ||Character.isDigit(c)||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoCedulaEstAgregarKeyTyped

    private void campoApellido2EstAgregarKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoApellido2EstAgregarKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(Character.isLetter(c)||isSpecialSeparator(c)||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoApellido2EstAgregarKeyTyped

    private void campoApellido1EstAgregarKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoApellido1EstAgregarKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(Character.isLetter(c)||isSpecialSeparator(c)||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoApellido1EstAgregarKeyTyped

    private void campoApellido1EstAgregarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_campoApellido1EstAgregarActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_campoApellido1EstAgregarActionPerformed

    private void campoNombreAgregarKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoNombreAgregarKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(Character.isLetter(c)||Character.isSpaceChar(c) ||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoNombreAgregarKeyTyped

    private void campoNombreAgregarKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoNombreAgregarKeyReleased
        // TODO add your handling code here:
    }//GEN-LAST:event_campoNombreAgregarKeyReleased

    private void campoNombreRespAgregarKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoNombreRespAgregarKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(Character.isLetter(c)||Character.isSpaceChar(c) ||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoNombreRespAgregarKeyTyped

    private void campoApellido1RespAgregarKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoApellido1RespAgregarKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(Character.isLetter(c)||isSpecialSeparator(c)||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoApellido1RespAgregarKeyTyped

    private void campoApellido2RespAgregarKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoApellido2RespAgregarKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(Character.isLetter(c)||isSpecialSeparator(c)||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoApellido2RespAgregarKeyTyped

    private void campoCedulaRespAgregarKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoCedulaRespAgregarKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(Character.isLetter(c) ||Character.isDigit(c)||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoCedulaRespAgregarKeyTyped

    private void campoEmailRespAgregarKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoEmailRespAgregarKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(!Character.isSpaceChar(c) ||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoEmailRespAgregarKeyTyped

    private void campoTelRespAgregarKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoTelRespAgregarKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(Character.isDigit(c)||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoTelRespAgregarKeyTyped

    private void btnCancelarEstAgregarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelarEstAgregarActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_btnCancelarEstAgregarActionPerformed

    private void campoEmailEst2AgregarKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoEmailEst2AgregarKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(!Character.isSpaceChar(c) ||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoEmailEst2AgregarKeyTyped

    private void estadoActivoEstAgregarMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_estadoActivoEstAgregarMouseClicked
        // TODO add your handling code here:
        actualizarControlesEstudiantesAgregar();
        if(estadoActivoEstAgregar.isEnabled()){
            estadoInactivoEstAgregar.setSelected(false);
        }
    }//GEN-LAST:event_estadoActivoEstAgregarMouseClicked

    private void estadoInactivoEstAgregarMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_estadoInactivoEstAgregarMouseClicked
        // TODO add your handling code here:
        actualizarControlesEstudiantesAgregar();
        if(estadoInactivoEstAgregar.isEnabled()){
            estadoActivoEstAgregar.setSelected(false);
        }
    }//GEN-LAST:event_estadoInactivoEstAgregarMouseClicked

    private void campoFechaNacEstAgregarKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoFechaNacEstAgregarKeyTyped
        // TODO add your handling code here:
        
    }//GEN-LAST:event_campoFechaNacEstAgregarKeyTyped

    private void campoFechaNacEstAgregarMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_campoFechaNacEstAgregarMouseReleased
        // TODO add your handling code here:
        actualizarControlesEstudiantesAgregar();
    }//GEN-LAST:event_campoFechaNacEstAgregarMouseReleased

    private void campoFechaNacEstActKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoFechaNacEstActKeyTyped
        // TODO add your handling code here:
    }//GEN-LAST:event_campoFechaNacEstActKeyTyped

    private void campoFechaNacEstActMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_campoFechaNacEstActMouseReleased
        // TODO add your handling code here:
    }//GEN-LAST:event_campoFechaNacEstActMouseReleased

    private void estadoInactivoEstActMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_estadoInactivoEstActMouseClicked
        // TODO add your handling code here:
        actualizarControlesEstudiantesAct();
        if(estadoInactivoEstAct.isEnabled()){
            estadoActivoEstAct.setSelected(false);
        }
    }//GEN-LAST:event_estadoInactivoEstActMouseClicked

    private void estadoActivoEstActMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_estadoActivoEstActMouseClicked
        // TODO add your handling code here:
        actualizarControlesEstudiantesAct();
        if(estadoActivoEstAct.isEnabled()){
            estadoInactivoEstAct.setSelected(false);
        }
    }//GEN-LAST:event_estadoActivoEstActMouseClicked

    private void campoEmailEst2ActKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoEmailEst2ActKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(!Character.isSpaceChar(c) ||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoEmailEst2ActKeyTyped

    private void campoTelRespActKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoTelRespActKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(Character.isDigit(c) ||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoTelRespActKeyTyped

    private void campoTel2EstActKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoTel2EstActKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(Character.isDigit(c) ||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoTel2EstActKeyTyped

    private void campoTel1EstActKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoTel1EstActKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(Character.isDigit(c) ||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoTel1EstActKeyTyped

    private void btnCancelarEstActActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelarEstActActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_btnCancelarEstActActionPerformed

    private void btnCancelarEstActMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btnCancelarEstActMouseClicked
        // TODO add your handling code here:
        cancelarOActualizarExpediente(1);
    }//GEN-LAST:event_btnCancelarEstActMouseClicked

    private void btnActualizarEstMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btnActualizarEstMouseClicked
        // TODO add your handling code here:
        puedeActualizarExpediente();
    }//GEN-LAST:event_btnActualizarEstMouseClicked

    private void campoEmailRespActKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoEmailRespActKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(!Character.isSpaceChar(c) ||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoEmailRespActKeyTyped

    private void campoCedulaRespActKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoCedulaRespActKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(Character.isLetter(c) ||Character.isDigit(c)||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoCedulaRespActKeyTyped

    private void campoApellido2RespActKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoApellido2RespActKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(Character.isLetter(c)||isSpecialSeparator(c)||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoApellido2RespActKeyTyped

    private void campoApellido1RespActKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoApellido1RespActKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(Character.isLetter(c)||isSpecialSeparator(c)||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoApellido1RespActKeyTyped

    private void campoNombreRespActKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoNombreRespActKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(Character.isLetter(c)||Character.isSpaceChar(c) ||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoNombreRespActKeyTyped

    private void campoEmailEst1ActKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoEmailEst1ActKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(!Character.isSpaceChar(c) ||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoEmailEst1ActKeyTyped

    private void campoCedulaEstActKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoCedulaEstActKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(Character.isLetter(c) ||Character.isDigit(c)||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoCedulaEstActKeyTyped

    private void campoApellido2EstActKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoApellido2EstActKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(Character.isLetter(c)||isSpecialSeparator(c)||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoApellido2EstActKeyTyped

    private void campoApellido1EstActKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoApellido1EstActKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(Character.isLetter(c)||isSpecialSeparator(c)||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoApellido1EstActKeyTyped

    private void campoApellido1EstActActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_campoApellido1EstActActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_campoApellido1EstActActionPerformed

    private void campoNombreEstActKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoNombreEstActKeyTyped
        // TODO add your handling code here:
        char c = evt.getKeyChar();
        if(!(Character.isLetter(c)||Character.isSpaceChar(c) ||(c == KeyEvent.VK_BACK_SPACE)||(c== KeyEvent.VK_DELETE))){
            getToolkit().beep();
            evt.consume();
        }
    }//GEN-LAST:event_campoNombreEstActKeyTyped

    private void campoNombreEstActKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoNombreEstActKeyReleased
        // TODO add your handling code here:
    }//GEN-LAST:event_campoNombreEstActKeyReleased

    private void campoBusquedaEstActualizarKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoBusquedaEstActualizarKeyReleased
        // TODO add your handling code here:
        actualizarEstudianteSorter();
        deseleccionadoActualizar();
    }//GEN-LAST:event_campoBusquedaEstActualizarKeyReleased

    private void campoBusquedaEstEliminarKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoBusquedaEstEliminarKeyReleased
        // TODO add your handling code here:
        eliminarEstudianteSorter();
    }//GEN-LAST:event_campoBusquedaEstEliminarKeyReleased

    private void campoBusquedaEstMostrarKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoBusquedaEstMostrarKeyReleased
        // TODO add your handling code here:
        mostrarEstudianteSorter();
    }//GEN-LAST:event_campoBusquedaEstMostrarKeyReleased

    private void campoBusquedaEstAsignarKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoBusquedaEstAsignarKeyReleased
        // TODO add your handling code here:
        asignarEstudianteSorter();
        deshabilitarCancelarAsignacion();
    }//GEN-LAST:event_campoBusquedaEstAsignarKeyReleased

    private void campoBusquedaPromocionAsignarKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoBusquedaPromocionAsignarKeyReleased
        // TODO add your handling code here:
        asignarPromocionSorter();
        deshabilitarCancelarAsignacion();
    }//GEN-LAST:event_campoBusquedaPromocionAsignarKeyReleased

    private void btnCancelarAsignacionMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btnCancelarAsignacionMouseClicked
        // TODO add your handling code here:
        cancelarAsignacionPromocion();
    }//GEN-LAST:event_btnCancelarAsignacionMouseClicked

    private void btnCancelarAsignacionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelarAsignacionActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_btnCancelarAsignacionActionPerformed

    private void btnRegistrarAsignacionMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btnRegistrarAsignacionMouseClicked
        // TODO add your handling code here:
        puedeAsignar();
    }//GEN-LAST:event_btnRegistrarAsignacionMouseClicked

    private void campoBusquedaEstDesasignarKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoBusquedaEstDesasignarKeyReleased
        // TODO add your handling code here:
        desasignarEstudianteSorter();
        deshabilitarCancelarDesasignacion();
    }//GEN-LAST:event_campoBusquedaEstDesasignarKeyReleased

    private void campoBusquedaPromocionDesasignarKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoBusquedaPromocionDesasignarKeyReleased
        // TODO add your handling code here:
        desasignarPromocionSorter();
        deshabilitarCancelarDesasignacion();
    }//GEN-LAST:event_campoBusquedaPromocionDesasignarKeyReleased

    private void btnCancelarDesasignacionMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btnCancelarDesasignacionMouseClicked
        // TODO add your handling code here:
        cancelarDesasignacionPromocion();
    }//GEN-LAST:event_btnCancelarDesasignacionMouseClicked

    private void btnCancelarDesasignacionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelarDesasignacionActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_btnCancelarDesasignacionActionPerformed

    private void btnRealizarDesasignacionMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btnRealizarDesasignacionMouseClicked
        // TODO add your handling code here:
        puedeDesasignar();
    }//GEN-LAST:event_btnRealizarDesasignacionMouseClicked

    private void campoBusquedaEstDesasignarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_campoBusquedaEstDesasignarActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_campoBusquedaEstDesasignarActionPerformed

    private void campoBusquedaKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_campoBusquedaKeyReleased
        // TODO add your handling code here:
        buscarAsignacion();
    }//GEN-LAST:event_campoBusquedaKeyReleased

    private void btnBusquedaMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btnBusquedaMouseClicked
        // TODO add your handling code here:
        popUpFormaBusqueda();
    }//GEN-LAST:event_btnBusquedaMouseClicked

    private void btnCancelarBusquedaMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btnCancelarBusquedaMouseClicked
        // TODO add your handling code here:
        modoCancelar();
    }//GEN-LAST:event_btnCancelarBusquedaMouseClicked

    private void iniciarNuevoExpediente(){
        btnNuevoEstAgregar.setEnabled(false);
        btnCancelarEstAgregar.setEnabled(true);
        btnCrearEstAgregar.setEnabled(false);
        astNombreAgregar.setVisible(true);
        campoNombreAgregar.setEnabled(true);
        campoNombreAgregar.setBackground(Color.white);
        astApellido1Agregar.setVisible(true);
        campoApellido1EstAgregar.setEnabled(true);
        campoApellido1EstAgregar.setBackground(Color.white);
        campoApellido2EstAgregar.setEnabled(true);
        campoApellido2EstAgregar.setBackground(Color.white);
        astCedulaAgregar.setVisible(true);
        campoCedulaEstAgregar.setEnabled(true);
        campoCedulaEstAgregar.setBackground(Color.white);
        campoCedulaEstAgregar.requestFocus();
        astFechaNacEstAgregar.setVisible(true);
        campoFechaNacEstAgregar.setEnabled(true);
        ((JTextField)campoFechaNacEstAgregar.getDateEditor().getUiComponent()).setBackground(Color.white);
        astCorreoAgregar.setVisible(true);
        campoEmailEst1Agregar.setEnabled(true);
        campoEmailEst1Agregar.setBackground(Color.white);
        campoEmailEst2Agregar.setEnabled(true);
        campoEmailEst2Agregar.setBackground(Color.white);
        astTel1EstAgregar.setVisible(true);
        campoTel1EstAgregar.setEnabled(true);
        campoTel1EstAgregar.setBackground(Color.white);
        campoTel2EstAgregar.setEnabled(true);
        campoTel2EstAgregar.setBackground(Color.white);
        astEstadoEstAgregar.setVisible(true);
        estadoActivoEstAgregar.setEnabled(true);
        estadoInactivoEstAgregar.setEnabled(true);
    }
    
    private void cancelarOCrearExpediente(){
        btnNuevoEstAgregar.setEnabled(true);
        btnCancelarEstAgregar.setEnabled(false);
        btnCrearEstAgregar.setEnabled(false);
        astNombreAgregar.setVisible(false);
        campoNombreAgregar.setBackground(new Color(240,240,240));
        campoNombreAgregar.setToolTipText(null);        
        campoNombreAgregar.setEnabled(false);
        campoNombreAgregar.setText("");
        astApellido1Agregar.setVisible(false);
        campoApellido1EstAgregar.setBackground(new Color(240,240,240));
        campoApellido1EstAgregar.setToolTipText(null);
        campoApellido1EstAgregar.setEnabled(false);
        campoApellido1EstAgregar.setText("");
        campoApellido2EstAgregar.setBackground(new Color(240,240,240));
        campoApellido2EstAgregar.setToolTipText(null);
        campoApellido2EstAgregar.setEnabled(false);
        campoApellido2EstAgregar.setText("");
        astCedulaAgregar.setVisible(false);
        campoCedulaEstAgregar.setBackground(new Color(240,240,240));
        campoCedulaEstAgregar.setToolTipText(null);
        campoCedulaEstAgregar.setEnabled(false);
        campoCedulaEstAgregar.setText("");
        astFechaNacEstAgregar.setVisible(false);
        campoFechaNacEstAgregar.setDate(null);
        campoFechaNacEstAgregar.setEnabled(false);
        astCorreoAgregar.setVisible(false);
        campoEmailEst1Agregar.setBackground(new Color(240,240,240));
        campoEmailEst1Agregar.setToolTipText(null);
        campoEmailEst1Agregar.setEnabled(false);
        campoEmailEst1Agregar.setText("");
        campoEmailEst2Agregar.setBackground(new Color(240,240,240));
        campoEmailEst2Agregar.setToolTipText(null);
        campoEmailEst2Agregar.setEnabled(false);
        campoEmailEst2Agregar.setText("");
        astTel1EstAgregar.setVisible(false);
        campoTel1EstAgregar.setBackground(new Color(240,240,240));
        campoTel1EstAgregar.setToolTipText(null);
        campoTel1EstAgregar.setEnabled(false);
        campoTel1EstAgregar.setText("");
        campoTel2EstAgregar.setBackground(new Color(240,240,240));
        campoTel2EstAgregar.setToolTipText(null);
        campoTel2EstAgregar.setEnabled(false);
        campoTel2EstAgregar.setText("");
        astEstadoEstAgregar.setVisible(false);
        astNombreRespAgregar.setVisible(false);
        campoNombreRespAgregar.setBackground(new Color(240,240,240));
        campoNombreRespAgregar.setToolTipText(null);
        campoNombreRespAgregar.setEnabled(false);
        campoNombreRespAgregar.setText("");
        astApellido1RespAgregar.setVisible(false);
        campoApellido1RespAgregar.setBackground(new Color(240,240,240));
        campoApellido1RespAgregar.setToolTipText(null);
        campoApellido1RespAgregar.setEnabled(false);
        campoApellido1RespAgregar.setText("");
        campoApellido2RespAgregar.setBackground(new Color(240,240,240));
        campoApellido2RespAgregar.setToolTipText(null);
        campoApellido2RespAgregar.setEnabled(false);
        campoApellido2RespAgregar.setText("");
        astCedulaRespAgregar.setVisible(false);
        campoCedulaRespAgregar.setBackground(new Color(240,240,240));
        campoCedulaRespAgregar.setToolTipText(null);
        campoCedulaRespAgregar.setEnabled(false);
        campoCedulaRespAgregar.setText("");
        astFechaNacRespAgregar.setVisible(false);
        campoFechaNacRespAgregar.setDate(null);
        campoFechaNacRespAgregar.setEnabled(false);
        astCorreoRespAgregar.setVisible(false);
        campoEmailRespAgregar.setBackground(new Color(240,240,240));
        campoEmailRespAgregar.setToolTipText(null);
        campoEmailRespAgregar.setEnabled(false);
        campoEmailRespAgregar.setText("");
        astTelRespAgregar.setVisible(false);
        campoTelRespAgregar.setBackground(new Color(240,240,240));
        campoTelRespAgregar.setToolTipText(null);
        campoTelRespAgregar.setEnabled(false);
        campoTelRespAgregar.setText("");
        astEstadoEstAgregar.setVisible(false);
        estadoActivoEstAgregar.setSelected(false);
        estadoActivoEstAgregar.setEnabled(false);
        estadoInactivoEstAgregar.setSelected(false);
        estadoInactivoEstAgregar.setEnabled(false);
    }
        
    private boolean isSpecialSeparator(Character c){
        if(c.equals('-')){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean validarCorreo(String correo){
        Pattern pattern = Pattern.compile(patronEmail); //compila la ER en un patron/modelo
        Matcher matcher = pattern.matcher(correo); //trata de emparejar el correo escrito contra el patron generado
        return matcher.matches();
    }
    
    private boolean validarMenorEdad(JDateChooser campoFecha){
        Calendar a = campoFecha.getCalendar();
        Calendar b = Calendar.getInstance();
        int anios = b.get(Calendar.YEAR) - a.get(Calendar.YEAR);
        if (a.get(Calendar.MONTH) > b.get(Calendar.MONTH) || (a.get(Calendar.MONTH) == b.get(Calendar.MONTH) && a.get(Calendar.DAY_OF_MONTH) > b.get(Calendar.DAY_OF_MONTH))) {
            anios--;
        }
        if(anios<18){
            return true;
        }
        else{
            return false;
        }
    }
    
        
    private void activarCamposResponsable(){
        btnCrearEstAgregar.setEnabled(false);
        astCedulaRespAgregar.setVisible(true);
        campoCedulaRespAgregar.setEnabled(true);
        campoCedulaRespAgregar.setBackground(Color.white);
        astNombreRespAgregar.setVisible(true);
        campoNombreRespAgregar.setEnabled(true);
        campoNombreRespAgregar.setBackground(Color.white);
        astApellido1RespAgregar.setVisible(true);
        campoApellido1RespAgregar.setEnabled(true);
        campoApellido1RespAgregar.setBackground(Color.white);
        campoApellido2RespAgregar.setEnabled(true);
        campoApellido2RespAgregar.setBackground(Color.white);
        astFechaNacRespAgregar.setVisible(true);
        campoFechaNacRespAgregar.setEnabled(true);
        ((JTextField)campoFechaNacRespAgregar.getDateEditor().getUiComponent()).setBackground(Color.white);
        astCorreoRespAgregar.setVisible(true);
        campoEmailRespAgregar.setEnabled(true);
        campoEmailRespAgregar.setBackground(Color.white);
        astTelRespAgregar.setVisible(true);
        campoTelRespAgregar.setEnabled(true);
        campoTelRespAgregar.setBackground(Color.white);
    }
    
    private void desactivarCamposResponsable(){
        astNombreRespAgregar.setVisible(false);
        campoNombreRespAgregar.setText("");
        campoNombreRespAgregar.setBackground(new Color(240,240,240));
        campoNombreRespAgregar.setToolTipText(null);
        campoNombreRespAgregar.setEnabled(false);
        astApellido1RespAgregar.setVisible(false);
        campoApellido1RespAgregar.setText("");
        campoApellido1RespAgregar.setBackground(new Color(240,240,240));
        campoApellido1RespAgregar.setToolTipText(null);
        campoApellido1RespAgregar.setEnabled(false);
        campoApellido2RespAgregar.setText("");
        campoApellido2RespAgregar.setBackground(new Color(240,240,240));
        campoApellido2RespAgregar.setToolTipText(null);
        campoApellido2RespAgregar.setEnabled(false);
        astCedulaRespAgregar.setVisible(false);
        campoCedulaRespAgregar.setText("");
        campoCedulaRespAgregar.setEnabled(false);
        campoCedulaRespAgregar.setBackground(new Color(240,240,240));
        campoCedulaRespAgregar.setToolTipText(null);
        astFechaNacRespAgregar.setVisible(false);
        campoFechaNacRespAgregar.setDate(null);
        campoFechaNacRespAgregar.setEnabled(false);
        astCorreoRespAgregar.setVisible(false);
        campoEmailRespAgregar.setText("");
        campoEmailRespAgregar.setBackground(new Color(240,240,240));
        campoEmailRespAgregar.setToolTipText(null);
        campoEmailRespAgregar.setEnabled(false);
        astTelRespAgregar.setVisible(false);
        campoTelRespAgregar.setText("");
        campoTelRespAgregar.setBackground(new Color(240,240,240));
        campoTelRespAgregar.setToolTipText(null);
        campoTelRespAgregar.setEnabled(false);
        
    }
    
    private void errorEstudianteIngresado(){
        campoCedulaEstAgregar.setBackground(new Color(255,51,51));
        campoCedulaEstAgregar.setToolTipText("Revisar cédula de estudiante");
    }
    
    private void ingresarExpediente(){
        int confirmado = JOptionPane.showOptionDialog(
            null,"Confirmar creación de expediente de estudiante para "+campoCedulaEstAgregar.getText()+"-"+campoNombreAgregar.getText().replaceAll("\\s+$","")+" "+campoApellido1EstAgregar.getText()+" "+campoApellido2EstAgregar.getText(), "Confirmación requerida",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE,
            null,    // null para icono por defecto.
            new Object[] { "Correcto", "Cancelar"},   // null para YES, NO y CANCEL
            null);
                
        if(confirmado==0){
            Connection conexion=null;
            Statement sentencia=null;
            ResultSet resultado=null;
        
            try {
                Class.forName("org.postgresql.Driver");
            }catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
            try{
                conexion = DriverManager.getConnection(cadenaConexion);
                sentencia = conexion.createStatement();
                String consultaSQL;
                if(!campoNombreRespAgregar.isEnabled()){//mayor de edad
                    if(campoApellido2EstAgregar.getText().equals("")){
                        if(campoTel2EstAgregar.getText().equals("")){
                            if(campoEmailEst2Agregar.getText().equals("")){
                                consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"',NULL,'"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true',NULL,NULL,NULL,NULL,NULL,'"+campoEmailEst1Agregar.getText()+"',NULL,NULL,"+campoTel1EstAgregar.getText()+",NULL,NULL)";
                            }
                            else{
                                consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"',NULL,'"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true',NULL,NULL,NULL,NULL,NULL,'"+campoEmailEst1Agregar.getText()+"','"+campoEmailEst2Agregar.getText()+"',NULL,"+campoTel1EstAgregar.getText()+",NULL,NULL)";
                            }
                        } 
                        else{
                            if(campoEmailEst2Agregar.getText().equals("")){
                                consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"',NULL,'"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true',NULL,NULL,NULL,NULL,NULL,'"+campoEmailEst1Agregar.getText()+"',NULL,NULL,"+campoTel1EstAgregar.getText()+","+campoTel2EstAgregar.getText()+",NULL)";
                            }
                            else{
                                consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"',NULL,'"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true',NULL,NULL,NULL,NULL,NULL,'"+campoEmailEst1Agregar.getText()+"','"+campoEmailEst2Agregar.getText()+"',NULL,"+campoTel1EstAgregar.getText()+","+campoTel2EstAgregar.getText()+",NULL)";
                            }
                        }
                    }
                    else{
                        if(campoTel2EstAgregar.getText().equals("")){
                            if(campoEmailEst2Agregar.getText().equals("")){
                                consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"','"+campoApellido2EstAgregar.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true',NULL,NULL,NULL,NULL,NULL,'"+campoEmailEst1Agregar.getText()+"',NULL,NULL,"+campoTel1EstAgregar.getText()+",NULL,NULL)";
                            }
                            else{
                                consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"','"+campoApellido2EstAgregar.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true',NULL,NULL,NULL,NULL,NULL,'"+campoEmailEst1Agregar.getText()+"','"+campoEmailEst2Agregar.getText()+"',NULL,"+campoTel1EstAgregar.getText()+",NULL,NULL)";
                            }
                        } 
                        else{
                            if(campoEmailEst2Agregar.getText().equals("")){
                                consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"','"+campoApellido2EstAgregar.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true',NULL,NULL,NULL,NULL,NULL,'"+campoEmailEst1Agregar.getText()+"',NULL,NULL,"+campoTel1EstAgregar.getText()+","+campoTel2EstAgregar.getText()+",NULL)";
                            }
                            else{
                                consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"','"+campoApellido2EstAgregar.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true',NULL,NULL,NULL,NULL,NULL,'"+campoEmailEst1Agregar.getText()+"','"+campoEmailEst2Agregar.getText()+"',NULL,"+campoTel1EstAgregar.getText()+","+campoTel2EstAgregar.getText()+",NULL)";
                            }
                        }
                    }
                }
                else{//menor de edad
                    if(campoApellido2EstAgregar.getText().equals("")){
                        if(campoTel2EstAgregar.getText().equals("")){
                            if(campoEmailEst2Agregar.getText().equals("")){
                                if(campoApellido2RespAgregar.getText().equals("")){
                                    consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"',NULL,'"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true','"+campoCedulaRespAgregar.getText()+"','"+campoNombreRespAgregar.getText()+"','"+campoApellido1RespAgregar.getText()+"',NULL,'"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAgregar))+"','"+campoEmailEst1Agregar.getText()+"',NULL,'"+campoEmailRespAgregar.getText()+"',"+campoTel1EstAgregar.getText()+",NULL,"+campoTelRespAgregar.getText()+")";
                                }
                                else{
                                    consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"',NULL,'"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true','"+campoCedulaRespAgregar.getText()+"','"+campoNombreRespAgregar.getText()+"','"+campoApellido1RespAgregar.getText()+"','"+campoApellido2RespAgregar.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAgregar))+"','"+campoEmailEst1Agregar.getText()+"',NULL,'"+campoEmailRespAgregar.getText()+"',"+campoTel1EstAgregar.getText()+",NULL,"+campoTelRespAgregar.getText()+")";
                                }
                            }
                            else{
                                if(campoApellido2RespAgregar.getText().equals("")){
                                    consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"',NULL,'"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true','"+campoCedulaRespAgregar.getText()+"','"+campoNombreRespAgregar.getText()+"','"+campoApellido1RespAgregar.getText()+"',NULL,'"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAgregar))+"','"+campoEmailEst1Agregar.getText()+"','"+campoEmailEst2Agregar.getText()+"','"+campoEmailRespAgregar.getText()+"',"+campoTel1EstAgregar.getText()+",NULL,"+campoTelRespAgregar.getText()+")";
                                }
                                else{
                                    consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"',NULL,'"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true','"+campoCedulaRespAgregar.getText()+"','"+campoNombreRespAgregar.getText()+"','"+campoApellido1RespAgregar.getText()+"','"+campoApellido2RespAgregar.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAgregar))+"','"+campoEmailEst1Agregar.getText()+"','"+campoEmailEst2Agregar.getText()+"','"+campoEmailRespAgregar.getText()+"',"+campoTel1EstAgregar.getText()+",NULL,"+campoTelRespAgregar.getText()+")";
                                }
                            }
                        }
                        else{
                            if(campoEmailEst2Agregar.getText().equals("")){
                                if(campoApellido2RespAgregar.getText().equals("")){
                                    consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"',NULL,'"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true','"+campoCedulaRespAgregar.getText()+"','"+campoNombreRespAgregar.getText()+"','"+campoApellido1RespAgregar.getText()+"',NULL,'"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAgregar))+"','"+campoEmailEst1Agregar.getText()+"',NULL,'"+campoEmailRespAgregar.getText()+"',"+campoTel1EstAgregar.getText()+","+campoTel2EstAgregar.getText()+","+campoTelRespAgregar.getText()+")";
                                }
                                else{
                                    consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"',NULL,'"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true','"+campoCedulaRespAgregar.getText()+"','"+campoNombreRespAgregar.getText()+"','"+campoApellido1RespAgregar.getText()+"','"+campoApellido2RespAgregar.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAgregar))+"','"+campoEmailEst1Agregar.getText()+"',NULL,'"+campoEmailRespAgregar.getText()+"',"+campoTel1EstAgregar.getText()+","+campoTel2EstAgregar.getText()+","+campoTelRespAgregar.getText()+")";
                                }
                            }
                            else{
                                if(campoApellido2RespAgregar.getText().equals("")){
                                    consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"',NULL,'"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true','"+campoCedulaRespAgregar.getText()+"','"+campoNombreRespAgregar.getText()+"','"+campoApellido1RespAgregar.getText()+"',NULL,'"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAgregar))+"','"+campoEmailEst1Agregar.getText()+"','"+campoEmailEst2Agregar.getText()+"','"+campoEmailRespAgregar.getText()+"',"+campoTel1EstAgregar.getText()+","+campoTel2EstAgregar.getText()+","+campoTelRespAgregar.getText()+")";
                                }
                                else{
                                    consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"',NULL,'"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true','"+campoCedulaRespAgregar.getText()+"','"+campoNombreRespAgregar.getText()+"','"+campoApellido1RespAgregar.getText()+"','"+campoApellido2RespAgregar.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAgregar))+"','"+campoEmailEst1Agregar.getText()+"','"+campoEmailEst2Agregar.getText()+"','"+campoEmailRespAgregar.getText()+"',"+campoTel1EstAgregar.getText()+","+campoTel2EstAgregar.getText()+","+campoTelRespAgregar.getText()+")";
                                }
                            }
                        }
                    }
                    else{
                        if(campoTel2EstAgregar.getText().equals("")){
                            if(campoEmailEst2Agregar.getText().equals("")){
                                if(campoApellido2RespAgregar.getText().equals("")){
                                    consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"','"+campoApellido2EstAgregar.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true','"+campoCedulaRespAgregar.getText()+"','"+campoNombreRespAgregar.getText()+"','"+campoApellido1RespAgregar.getText()+"',NULL,'"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAgregar))+"','"+campoEmailEst1Agregar.getText()+"',NULL,'"+campoEmailRespAgregar.getText()+"',"+campoTel1EstAgregar.getText()+",NULL,"+campoTelRespAgregar.getText()+")";
                                }
                                else{
                                    consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"','"+campoApellido2EstAgregar.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true','"+campoCedulaRespAgregar.getText()+"','"+campoNombreRespAgregar.getText()+"','"+campoApellido1RespAgregar.getText()+"','"+campoApellido2RespAgregar.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAgregar))+"','"+campoEmailEst1Agregar.getText()+"',NULL,'"+campoEmailRespAgregar.getText()+"',"+campoTel1EstAgregar.getText()+",NULL,"+campoTelRespAgregar.getText()+")";
                                }
                            }
                            else{
                                if(campoApellido2RespAgregar.getText().equals("")){
                                    consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"','"+campoApellido2EstAgregar.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true','"+campoCedulaRespAgregar.getText()+"','"+campoNombreRespAgregar.getText()+"','"+campoApellido1RespAgregar.getText()+"',NULL,'"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAgregar))+"','"+campoEmailEst1Agregar.getText()+"','"+campoEmailEst2Agregar.getText()+"','"+campoEmailRespAgregar.getText()+"',"+campoTel1EstAgregar.getText()+",NULL,"+campoTelRespAgregar.getText()+")";
                                }
                                else{
                                    consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"','"+campoApellido2EstAgregar.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true','"+campoCedulaRespAgregar.getText()+"','"+campoNombreRespAgregar.getText()+"','"+campoApellido1RespAgregar.getText()+"','"+campoApellido2RespAgregar.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAgregar))+"','"+campoEmailEst1Agregar.getText()+"','"+campoEmailEst2Agregar.getText()+"','"+campoEmailRespAgregar.getText()+"',"+campoTel1EstAgregar.getText()+",NULL,"+campoTelRespAgregar.getText()+")";
                                }
                            }
                        }
                        else{
                            if(campoEmailEst2Agregar.getText().equals("")){
                                if(campoApellido2RespAgregar.getText().equals("")){
                                    consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"','"+campoApellido2EstAgregar.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true','"+campoCedulaRespAgregar.getText()+"','"+campoNombreRespAgregar.getText()+"','"+campoApellido1RespAgregar.getText()+"',NULL,'"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAgregar))+"','"+campoEmailEst1Agregar.getText()+"',NULL,'"+campoEmailRespAgregar.getText()+"',"+campoTel1EstAgregar.getText()+","+campoTel2EstAgregar.getText()+","+campoTelRespAgregar.getText()+")";
                                }
                                else{
                                    consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"','"+campoApellido2EstAgregar.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true','"+campoCedulaRespAgregar.getText()+"','"+campoNombreRespAgregar.getText()+"','"+campoApellido1RespAgregar.getText()+"','"+campoApellido2RespAgregar.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAgregar))+"','"+campoEmailEst1Agregar.getText()+"',NULL,'"+campoEmailRespAgregar.getText()+"',"+campoTel1EstAgregar.getText()+","+campoTel2EstAgregar.getText()+","+campoTelRespAgregar.getText()+")";
                                }
                            }
                            else{
                                if(campoApellido2RespAgregar.getText().equals("")){
                                    consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"','"+campoApellido2EstAgregar.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true','"+campoCedulaRespAgregar.getText()+"','"+campoNombreRespAgregar.getText()+"','"+campoApellido1RespAgregar.getText()+"',NULL,'"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAgregar))+"','"+campoEmailEst1Agregar.getText()+"','"+campoEmailEst2Agregar.getText()+"','"+campoEmailRespAgregar.getText()+"',"+campoTel1EstAgregar.getText()+","+campoTel2EstAgregar.getText()+","+campoTelRespAgregar.getText()+")";
                                }
                                else{
                                    consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, email1_est, email2_est, email_resp, tel1_est, tel2_est, tel_resp) VALUES ('"+campoCedulaEstAgregar.getText()+"','"+campoNombreAgregar.getText()+"','"+campoApellido1EstAgregar.getText()+"','"+campoApellido2EstAgregar.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAgregar))+"','true','"+campoCedulaRespAgregar.getText()+"','"+campoNombreRespAgregar.getText()+"','"+campoApellido1RespAgregar.getText()+"','"+campoApellido2RespAgregar.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAgregar))+"','"+campoEmailEst1Agregar.getText()+"','"+campoEmailEst2Agregar.getText()+"','"+campoEmailRespAgregar.getText()+"',"+campoTel1EstAgregar.getText()+","+campoTel2EstAgregar.getText()+","+campoTelRespAgregar.getText()+")";
                                }
                            }
                        }
                    }
                }
                
                //consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, telefonos, telefonos_resp) VALUES ('"+campoCedulaEst.getText()+"','"+campoNombreEst.getText()+"','"+campoAp1Est.getText()+"','"+campoApe2Est.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEst))+"','"+campoCedulaResp.getText()+"','"+campoNombreResp.getText()+"','"+campoApe1Resp.getText()+"','"+campoApe2Resp.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEst))+","+campoEmailEst1.getText()+"','"+campoEmailResp.getText()+"','"+campoTel1Resp.getText()+"','"+campoTel2Est.getText()+"','"+campoTel1Est.getText()+"','"+campoTel2Est.getText()+"','"+"','"+obtenerFechaDatePicker(campoFechaNacResp)+"')";
                
                resultado = sentencia.executeQuery(consultaSQL);

            } catch (SQLException e) {
                if(e.getSQLState().equals("02000")){ //no_data , una inserción no devuelve nada
                    JOptionPane.showMessageDialog(null,"\n ¡Expediente de estudiante creado con éxito!","Éxito",JOptionPane.INFORMATION_MESSAGE);
                    cancelarOCrearExpediente();
                }
                else{       
                    if(e.getSQLState().equals("23505")){ //unique violation: llave duplicada
                        errorEstudianteIngresado();
                        JOptionPane.showMessageDialog(null, "\n Imposible registrar expediente de dicho estudiante \n Un estudiante con dicha cédula ya ha sido registrado, por favor asegúrese de ingresar correctamete los datos", "Error", JOptionPane.ERROR_MESSAGE); 
                    }
                    else{
                        JOptionPane.showMessageDialog(null, "\n Imposible registrar estudiante \n Por favor ingresar los datos correctamente", "Error", JOptionPane.ERROR_MESSAGE);
                        e.printStackTrace();
                        conexion = null;
                    }
                }
            }
            finally {
                if (resultado != null) {
                    try {
                        resultado.close();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
                if (sentencia != null) {
                    try {
                        sentencia.close();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
                if (conexion != null) {
                    try {
                        conexion.close();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
    
    private void actualizarExpediente(){
        int confirmado = JOptionPane.showOptionDialog(
            null,"Confirmar actualización del expediente de estudiante de "+campoCedulaEstAct.getText()+"-"+campoNombreEstAct.getText().replaceAll("\\s+$","")+" "+campoApellido1EstAct.getText()+" "+campoApellido2EstAct.getText(), "Confirmación requerida",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE,
            null,    // null para icono por defecto.
            new Object[] { "Correcto", "Cancelar"},   // null para YES, NO y CANCEL
            null);
                
        if(confirmado==0){
            Connection conexion=null;
            Statement sentencia=null;
            ResultSet resultado=null;
        
            try {
                Class.forName("org.postgresql.Driver");
            }catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
            try{
                conexion = DriverManager.getConnection(cadenaConexion);
                sentencia = conexion.createStatement();
                String consultaSQL="";
                if(estadoActivoEstAct.isSelected()){
                    if(!campoNombreRespAct.isEnabled()){//mayor de edad
                        if(campoApellido2EstAct.getText().equals("")){
                            if(campoTel2EstAct.getText().equals("")){
                                if(campoEmailEst2Act.getText().equals("")){
                                    consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='true',cedula_resp=NULL,nombre_resp=NULL,apellido1_resp=NULL,apellido2_resp=NULL,fecha_nac_resp=NULL,email1_est='"+campoEmailEst1Act.getText()+"',email2_est=NULL,email_resp=NULL,tel1_est="+campoTel1EstAct.getText()+",tel2_est=NULL,tel_resp=NULL where cedula='"+campoCedulaEstAct.getText()+"'";
                                }
                                else{
                                    consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='true',cedula_resp=NULL,nombre_resp=NULL,apellido1_resp=NULL,apellido2_resp=NULL,fecha_nac_resp=NULL,email1_est='"+campoEmailEst1Act.getText()+"',email2_est='"+campoEmailEst2Act.getText()+"',email_resp=NULL,tel1_est="+campoTel1EstAct.getText()+",tel2_est=NULL,tel_resp=NULL where cedula='"+campoCedulaEstAct.getText()+"'";
                                }
                            } 
                            else{
                                if(campoEmailEst2Act.getText().equals("")){
                                    consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='true',cedula_resp=NULL,nombre_resp=NULL,apellido1_resp=NULL,apellido2_resp=NULL,fecha_nac_resp=NULL,email1_est='"+campoEmailEst1Act.getText()+"',email2_est=NULL,email_resp=NULL,tel1_est="+campoTel1EstAct.getText()+",tel2_est="+campoTel2EstAct.getText()+",tel_resp=NULL where cedula='"+campoCedulaEstAct.getText()+"'";
                                }
                                else{
                                    consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='true',cedula_resp=NULL,nombre_resp=NULL,apellido1_resp=NULL,apellido2_resp=NULL,fecha_nac_resp=NULL,email1_est='"+campoEmailEst1Act.getText()+"',email2_est='"+campoEmailEst2Act.getText()+"',email_resp=NULL,tel1_est="+campoTel1EstAct.getText()+",tel2_est="+campoTel2EstAct.getText()+",tel_resp=NULL where cedula='"+campoCedulaEstAct.getText()+"'";
                                }
                            }
                        }
                        else{
                            if(campoTel2EstAct.getText().equals("")){
                                if(campoEmailEst2Act.getText().equals("")){
                                    consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2='"+campoApellido2EstAct.getText()+"',fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='true',cedula_resp=NULL,nombre_resp=NULL,apellido1_resp=NULL,apellido2_resp=NULL,fecha_nac_resp=NULL,email1_est='"+campoEmailEst1Act.getText()+"',email2_est=NULL,email_resp=NULL,tel1_est="+campoTel1EstAct.getText()+",tel2_est=NULL,tel_resp=NULL where cedula='"+campoCedulaEstAct.getText()+"'";
                                }
                                else{
                                    consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2='"+campoApellido2EstAct.getText()+"',fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='true',cedula_resp=NULL,nombre_resp=NULL,apellido1_resp=NULL,apellido2_resp=NULL,fecha_nac_resp=NULL,email1_est='"+campoEmailEst1Act.getText()+"',email2_est='"+campoEmailEst2Act.getText()+"',email_resp=NULL,tel1_est="+campoTel1EstAct.getText()+",tel2_est=NULL,tel_resp=NULL where cedula='"+campoCedulaEstAct.getText()+"'";
                                }
                            }  
                            else{
                                if(campoEmailEst2Act.getText().equals("")){
                                    consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2='"+campoApellido2EstAct.getText()+"',fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='true',cedula_resp=NULL,nombre_resp=NULL,apellido1_resp=NULL,apellido2_resp=NULL,fecha_nac_resp=NULL,email1_est='"+campoEmailEst1Act.getText()+"',email2_est=NULL,email_resp=NULL,tel1_est="+campoTel1EstAct.getText()+",tel2_est="+campoTel2EstAct.getText()+",tel_resp=NULL where cedula='"+campoCedulaEstAct.getText()+"'";
                                }
                                else{
                                    consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2='"+campoApellido2EstAct.getText()+"',fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='true',cedula_resp=NULL,nombre_resp=NULL,apellido1_resp=NULL,apellido2_resp=NULL,fecha_nac_resp=NULL,email1_est='"+campoEmailEst1Act.getText()+"',email2_est='"+campoEmailEst2Act.getText()+"',email_resp=NULL,tel1_est="+campoTel1EstAct.getText()+",tel2_est="+campoTel2EstAct.getText()+",tel_resp=NULL where cedula='"+campoCedulaEstAct.getText()+"'";
                                }
                            }
                        }
                    }
                    else{//menor de edad
                        if(campoApellido2EstAct.getText().equals("")){
                            if(campoTel2EstAct.getText().equals("")){
                                if(campoEmailEst2Act.getText().equals("")){
                                    if(campoApellido2RespAct.getText().equals("")){
                                        consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='true',cedula_resp='"+campoCedulaRespAct.getText()+"',nombre_resp='"+campoNombreRespAct.getText()+"',apellido1_resp='"+campoApellido1RespAct.getText()+"',apellido2_resp=NULL,fecha_nac_resp='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAct))+"',email1_est='"+campoEmailEst1Act.getText()+"',email2_est=NULL,email_resp='"+campoEmailRespAct.getText()+"',tel1_est="+campoTel1EstAct.getText()+",tel2_est=NULL,tel_resp="+campoTelRespAct.getText()+" where cedula='"+campoCedulaEstAct.getText()+"'";
                                    }
                                    else{
                                        consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='true',cedula_resp='"+campoCedulaRespAct.getText()+"',nombre_resp='"+campoNombreRespAct.getText()+"',apellido1_resp='"+campoApellido1RespAct.getText()+"',apellido2_resp='"+campoApellido2RespAct.getText()+"',fecha_nac_resp='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAct))+"',email1_est='"+campoEmailEst1Act.getText()+"',email2_est=NULL,email_resp='"+campoEmailRespAct.getText()+"',tel1_est="+campoTel1EstAct.getText()+",tel2_est=NULL,tel_resp="+campoTelRespAct.getText()+" where cedula='"+campoCedulaEstAct.getText()+"'";
                                    }
                                }   
                                else{
                                    if(campoApellido2RespAct.getText().equals("")){
                                        consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='true',cedula_resp='"+campoCedulaRespAct.getText()+"',nombre_resp='"+campoNombreRespAct.getText()+"',apellido1_resp='"+campoApellido1RespAct.getText()+"',apellido2_resp=NULL,fecha_nac_resp='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAct))+"',email1_est='"+campoEmailEst1Act.getText()+"',email2_est='"+campoEmailEst2Act.getText()+"',email_resp='"+campoEmailRespAct.getText()+"',tel1_est="+campoTel1EstAct.getText()+",tel2_est=NULL,tel_resp="+campoTelRespAct.getText()+" where cedula='"+campoCedulaEstAct.getText()+"'";
                                    }
                                    else{
                                        consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='true',cedula_resp='"+campoCedulaRespAct.getText()+"',nombre_resp='"+campoNombreRespAct.getText()+"',apellido1_resp='"+campoApellido1RespAct.getText()+"',apellido2_resp='"+campoApellido2RespAct.getText()+"',fecha_nac_resp='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAct))+"',email1_est='"+campoEmailEst1Act.getText()+"',email2_est='"+campoEmailEst2Act.getText()+"',email_resp='"+campoEmailRespAct.getText()+"',tel1_est="+campoTel1EstAct.getText()+",tel2_est=NULL,tel_resp="+campoTelRespAct.getText()+" where cedula='"+campoCedulaEstAct.getText()+"'";
                                    }
                                }
                            }
                            else{
                                if(campoEmailEst2Act.getText().equals("")){
                                    if(campoApellido2RespAct.getText().equals("")){
                                        consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='true',cedula_resp='"+campoCedulaRespAct.getText()+"',nombre_resp='"+campoNombreRespAct.getText()+"',apellido1_resp='"+campoApellido1RespAct.getText()+"',apellido2_resp=NULL,fecha_nac_resp='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAct))+"',email1_est='"+campoEmailEst1Act.getText()+"',email2_est=NULL,email_resp='"+campoEmailRespAct.getText()+"',tel1_est="+campoTel1EstAct.getText()+",tel2_est="+campoTel2EstAct.getText()+",tel_resp="+campoTelRespAct.getText()+" where cedula='"+campoCedulaEstAct.getText()+"'";
                                    }
                                    else{
                                        consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='true',cedula_resp='"+campoCedulaRespAct.getText()+"',nombre_resp='"+campoNombreRespAct.getText()+"',apellido1_resp='"+campoApellido1RespAct.getText()+"',apellido2_resp='"+campoApellido2RespAct.getText()+"',fecha_nac_resp='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAct))+"',email1_est='"+campoEmailEst1Act.getText()+"',email2_est=NULL,email_resp='"+campoEmailRespAct.getText()+"',tel1_est="+campoTel1EstAct.getText()+",tel2_est="+campoTel2EstAct.getText()+",tel_resp="+campoTelRespAct.getText()+" where cedula='"+campoCedulaEstAct.getText()+"'";
                                    }
                                }
                                else{
                                    if(campoApellido2RespAct.getText().equals("")){
                                        consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='true',cedula_resp='"+campoCedulaRespAct.getText()+"',nombre_resp='"+campoNombreRespAct.getText()+"',apellido1_resp='"+campoApellido1RespAct.getText()+"',apellido2_resp=NULL,fecha_nac_resp='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAct))+"',email1_est='"+campoEmailEst1Act.getText()+"',email2_est='"+campoEmailEst2Act.getText()+"',email_resp='"+campoEmailRespAct.getText()+"',tel1_est="+campoTel1EstAct.getText()+",tel2_est="+campoTel2EstAct.getText()+",tel_resp="+campoTelRespAct.getText()+" where cedula='"+campoCedulaEstAct.getText()+"'";
                                    }
                                    else{
                                        consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='true',cedula_resp='"+campoCedulaRespAct.getText()+"',nombre_resp='"+campoNombreRespAct.getText()+"',apellido1_resp='"+campoApellido1RespAct.getText()+"',apellido2_resp='"+campoApellido2RespAct.getText()+"',fecha_nac_resp='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAct))+"',email1_est='"+campoEmailEst1Act.getText()+"',email2_est='"+campoEmailEst2Act.getText()+"',email_resp='"+campoEmailRespAct.getText()+"',tel1_est="+campoTel1EstAct.getText()+",tel2_est="+campoTel2EstAct.getText()+",tel_resp="+campoTelRespAct.getText()+" where cedula='"+campoCedulaEstAct.getText()+"'";
                                    }   
                                }
                            }
                        }
                    }
                }
                else{//inactivo
                    if(!campoNombreRespAct.isEnabled()){//mayor de edad
                        if(campoApellido2EstAct.getText().equals("")){
                            if(campoTel2EstAct.getText().equals("")){
                                if(campoEmailEst2Act.getText().equals("")){
                                    consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='false',cedula_resp=NULL,nombre_resp=NULL,apellido1_resp=NULL,apellido2_resp=NULL,fecha_nac_resp=NULL,email1_est='"+campoEmailEst1Act.getText()+"',email2_est=NULL,email_resp=NULL,tel1_est="+campoTel1EstAct.getText()+",tel2_est=NULL,tel_resp=NULL where cedula='"+campoCedulaEstAct.getText()+"'";
                                }
                                else{
                                    consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='false',cedula_resp=NULL,nombre_resp=NULL,apellido1_resp=NULL,apellido2_resp=NULL,fecha_nac_resp=NULL,email1_est='"+campoEmailEst1Act.getText()+"',email2_est='"+campoEmailEst2Act.getText()+"',email_resp=NULL,tel1_est="+campoTel1EstAct.getText()+",tel2_est=NULL,tel_resp=NULL where cedula='"+campoCedulaEstAct.getText()+"'";
                                }
                            } 
                            else{
                                if(campoEmailEst2Act.getText().equals("")){
                                    consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='false',cedula_resp=NULL,nombre_resp=NULL,apellido1_resp=NULL,apellido2_resp=NULL,fecha_nac_resp=NULL,email1_est='"+campoEmailEst1Act.getText()+"',email2_est=NULL,email_resp=NULL,tel1_est="+campoTel1EstAct.getText()+",tel2_est="+campoTel2EstAct.getText()+",tel_resp=NULL where cedula='"+campoCedulaEstAct.getText()+"'";
                                }
                                else{
                                    consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='false',cedula_resp=NULL,nombre_resp=NULL,apellido1_resp=NULL,apellido2_resp=NULL,fecha_nac_resp=NULL,email1_est='"+campoEmailEst1Act.getText()+"',email2_est='"+campoEmailEst2Act.getText()+"',email_resp=NULL,tel1_est="+campoTel1EstAct.getText()+",tel2_est="+campoTel2EstAct.getText()+",tel_resp=NULL where cedula='"+campoCedulaEstAct.getText()+"'";
                                }
                            }
                        }
                        else{
                            if(campoTel2EstAct.getText().equals("")){
                                if(campoEmailEst2Act.getText().equals("")){
                                    consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2='"+campoApellido2EstAct.getText()+"',fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='false',cedula_resp=NULL,nombre_resp=NULL,apellido1_resp=NULL,apellido2_resp=NULL,fecha_nac_resp=NULL,email1_est='"+campoEmailEst1Act.getText()+"',email2_est=NULL,email_resp=NULL,tel1_est="+campoTel1EstAct.getText()+",tel2_est=NULL,tel_resp=NULL where cedula='"+campoCedulaEstAct.getText()+"'";
                                }
                                else{
                                    consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2='"+campoApellido2EstAct.getText()+"',fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='false',cedula_resp=NULL,nombre_resp=NULL,apellido1_resp=NULL,apellido2_resp=NULL,fecha_nac_resp=NULL,email1_est='"+campoEmailEst1Act.getText()+"',email2_est='"+campoEmailEst2Act.getText()+"',email_resp=NULL,tel1_est="+campoTel1EstAct.getText()+",tel2_est=NULL,tel_resp=NULL where cedula='"+campoCedulaEstAct.getText()+"'";
                                }
                            }  
                            else{
                                if(campoEmailEst2Act.getText().equals("")){
                                    consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2='"+campoApellido2EstAct.getText()+"',fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='false',cedula_resp=NULL,nombre_resp=NULL,apellido1_resp=NULL,apellido2_resp=NULL,fecha_nac_resp=NULL,email1_est='"+campoEmailEst1Act.getText()+"',email2_est=NULL,email_resp=NULL,tel1_est="+campoTel1EstAct.getText()+",tel2_est="+campoTel2EstAct.getText()+",tel_resp=NULL where cedula='"+campoCedulaEstAct.getText()+"'";
                                }
                                else{
                                    consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2='"+campoApellido2EstAct.getText()+"',fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='false',cedula_resp=NULL,nombre_resp=NULL,apellido1_resp=NULL,apellido2_resp=NULL,fecha_nac_resp=NULL,email1_est='"+campoEmailEst1Act.getText()+"',email2_est='"+campoEmailEst2Act.getText()+"',email_resp=NULL,tel1_est="+campoTel1EstAct.getText()+",tel2_est="+campoTel2EstAct.getText()+",tel_resp=NULL where cedula='"+campoCedulaEstAct.getText()+"'";
                                }
                            }
                        }
                    }
                    else{//menor de edad
                        if(campoApellido2EstAct.getText().equals("")){
                            if(campoTel2EstAct.getText().equals("")){
                                if(campoEmailEst2Act.getText().equals("")){
                                    if(campoApellido2RespAct.getText().equals("")){
                                        consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='false',cedula_resp='"+campoCedulaRespAct.getText()+"',nombre_resp='"+campoNombreRespAct.getText()+"',apellido1_resp='"+campoApellido1RespAct.getText()+"',apellido2_resp=NULL,fecha_nac_resp='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAct))+"',email1_est='"+campoEmailEst1Act.getText()+"',email2_est=NULL,email_resp='"+campoEmailRespAct.getText()+"',tel1_est="+campoTel1EstAct.getText()+",tel2_est=NULL,tel_resp="+campoTelRespAct.getText()+" where cedula='"+campoCedulaEstAct.getText()+"'";
                                    }
                                    else{
                                        consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='false',cedula_resp='"+campoCedulaRespAct.getText()+"',nombre_resp='"+campoNombreRespAct.getText()+"',apellido1_resp='"+campoApellido1RespAct.getText()+"',apellido2_resp='"+campoApellido2RespAct.getText()+"',fecha_nac_resp='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAct))+"',email1_est='"+campoEmailEst1Act.getText()+"',email2_est=NULL,email_resp='"+campoEmailRespAct.getText()+"',tel1_est="+campoTel1EstAct.getText()+",tel2_est=NULL,tel_resp="+campoTelRespAct.getText()+" where cedula='"+campoCedulaEstAct.getText()+"'";
                                    }
                                }
                                else{
                                    if(campoApellido2RespAct.getText().equals("")){
                                        consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='false',cedula_resp='"+campoCedulaRespAct.getText()+"',nombre_resp='"+campoNombreRespAct.getText()+"',apellido1_resp='"+campoApellido1RespAct.getText()+"',apellido2_resp=NULL,fecha_nac_resp='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAct))+"',email1_est='"+campoEmailEst1Act.getText()+"',email2_est='"+campoEmailEst2Act.getText()+"',email_resp='"+campoEmailRespAct.getText()+"',tel1_est="+campoTel1EstAct.getText()+",tel2_est=NULL,tel_resp="+campoTelRespAct.getText()+" where cedula='"+campoCedulaEstAct.getText()+"'";
                                    }
                                    else{
                                        consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='false',cedula_resp='"+campoCedulaRespAct.getText()+"',nombre_resp='"+campoNombreRespAct.getText()+"',apellido1_resp='"+campoApellido1RespAct.getText()+"',apellido2_resp='"+campoApellido2RespAct.getText()+"',fecha_nac_resp='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAct))+"',email1_est='"+campoEmailEst1Act.getText()+"',email2_est='"+campoEmailEst2Act.getText()+"',email_resp='"+campoEmailRespAct.getText()+"',tel1_est="+campoTel1EstAct.getText()+",tel2_est=NULL,tel_resp="+campoTelRespAct.getText()+" where cedula='"+campoCedulaEstAct.getText()+"'";
                                    }
                                }
                            }
                            else{
                                if(campoEmailEst2Act.getText().equals("")){
                                    if(campoApellido2RespAct.getText().equals("")){
                                        consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='false',cedula_resp='"+campoCedulaRespAct.getText()+"',nombre_resp='"+campoNombreRespAct.getText()+"',apellido1_resp='"+campoApellido1RespAct.getText()+"',apellido2_resp=NULL,fecha_nac_resp='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAct))+"',email1_est='"+campoEmailEst1Act.getText()+"',email2_est=NULL,email_resp='"+campoEmailRespAct.getText()+"',tel1_est="+campoTel1EstAct.getText()+",tel2_est="+campoTel2EstAct.getText()+",tel_resp="+campoTelRespAct.getText()+" where cedula='"+campoCedulaEstAct.getText()+"'";
                                    }
                                    else{
                                        consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='false',cedula_resp='"+campoCedulaRespAct.getText()+"',nombre_resp='"+campoNombreRespAct.getText()+"',apellido1_resp='"+campoApellido1RespAct.getText()+"',apellido2_resp='"+campoApellido2RespAct.getText()+"',fecha_nac_resp='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAct))+"',email1_est='"+campoEmailEst1Act.getText()+"',email2_est=NULL,email_resp='"+campoEmailRespAct.getText()+"',tel1_est="+campoTel1EstAct.getText()+",tel2_est="+campoTel2EstAct.getText()+",tel_resp="+campoTelRespAct.getText()+" where cedula='"+campoCedulaEstAct.getText()+"'";
                                    }
                                }
                                else{
                                    if(campoApellido2RespAct.getText().equals("")){
                                        consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='false',cedula_resp='"+campoCedulaRespAct.getText()+"',nombre_resp='"+campoNombreRespAct.getText()+"',apellido1_resp='"+campoApellido1RespAct.getText()+"',apellido2_resp=NULL,fecha_nac_resp='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAct))+"',email1_est='"+campoEmailEst1Act.getText()+"',email2_est='"+campoEmailEst2Act.getText()+"',email_resp='"+campoEmailRespAct.getText()+"',tel1_est="+campoTel1EstAct.getText()+",tel2_est="+campoTel2EstAct.getText()+",tel_resp="+campoTelRespAct.getText()+" where cedula='"+campoCedulaEstAct.getText()+"'";
                                    }
                                    else{
                                        consultaSQL = "update estudiante set cedula='"+campoCedulaEstAct.getText()+"',nombre='"+campoNombreEstAct.getText()+"',apellido1='"+campoApellido1EstAct.getText()+"',apellido2=NULL,fecha_nac='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEstAct))+"',activo='false',cedula_resp='"+campoCedulaRespAct.getText()+"',nombre_resp='"+campoNombreRespAct.getText()+"',apellido1_resp='"+campoApellido1RespAct.getText()+"',apellido2_resp='"+campoApellido2RespAct.getText()+"',fecha_nac_resp='"+getFechaNac(obtenerFechaDatePicker(campoFechaNacRespAct))+"',email1_est='"+campoEmailEst1Act.getText()+"',email2_est='"+campoEmailEst2Act.getText()+"',email_resp='"+campoEmailRespAct.getText()+"',tel1_est="+campoTel1EstAct.getText()+",tel2_est="+campoTel2EstAct.getText()+",tel_resp="+campoTelRespAct.getText()+" where cedula='"+campoCedulaEstAct.getText()+"'";
                                    }
                                }
                            }
                        }
                    }
                }
                
                //consultaSQL = "insert into estudiante (cedula, nombre, apellido1, apellido2, fecha_nac, activo, cedula_resp, nombre_resp, apellido1_resp, apellido2_resp, fecha_nac_resp, telefonos, telefonos_resp) VALUES ('"+campoCedulaEst.getText()+"','"+campoNombreEst.getText()+"','"+campoAp1Est.getText()+"','"+campoApe2Est.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEst))+"','"+campoCedulaResp.getText()+"','"+campoNombreResp.getText()+"','"+campoApe1Resp.getText()+"','"+campoApe2Resp.getText()+"','"+getFechaNac(obtenerFechaDatePicker(campoFechaNacEst))+","+campoEmailEst1.getText()+"','"+campoEmailResp.getText()+"','"+campoTel1Resp.getText()+"','"+campoTel2Est.getText()+"','"+campoTel1Est.getText()+"','"+campoTel2Est.getText()+"','"+"','"+obtenerFechaDatePicker(campoFechaNacResp)+"')";
                
                resultado = sentencia.executeQuery(consultaSQL);

            } catch (SQLException e) {
                if(e.getSQLState().equals("02000")){ //no_data , una inserción no devuelve nada
                    JOptionPane.showMessageDialog(null,"\n ¡Expediente de estudiante actualizado con éxito!","Éxito",JOptionPane.INFORMATION_MESSAGE);
                    actualizarEstSelecTabla();
                    cancelarOActualizarExpediente(1);
                }
                else{
                    JOptionPane.showMessageDialog(null, "\n Imposible actualizar estudiante \n Por favor ingresar los datos correctamente", "Error", JOptionPane.ERROR_MESSAGE);
                    e.printStackTrace();
                    conexion = null;
                }
            }
            finally {
                if (resultado != null) {
                    try {
                        resultado.close();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
                if (sentencia != null) {
                    try {
                        sentencia.close();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
                if (conexion != null) {
                    try {
                        conexion.close();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
    
    
    private void initComponents2(){
        astNombreAgregar.setVisible(false);
        astApellido1Agregar.setVisible(false);
        astCedulaAgregar.setVisible(false);
        astFechaNacEstAgregar.setVisible(false);
        ((JTextField)campoFechaNacEstAgregar.getDateEditor().getUiComponent()).setEditable(false);
        campoFechaNacEstAgregar.getDateEditor().addPropertyChangeListener(
        new PropertyChangeListener() {
            @Override
            public void propertyChange(PropertyChangeEvent e) {
                if ("date".equals(e.getPropertyName())) {
                    actualizarControlesEstudiantesAgregar();
                    if(campoFechaNacEstAgregar.getCalendar()!=null){
                        if(validarMenorEdad(campoFechaNacEstAgregar)){
                            activarCamposResponsable();
                        }
                        else{
                            desactivarCamposResponsable();
                        }
                    }
                }
            }
        });
        astCorreoAgregar.setVisible(false);
        astTel1EstAgregar.setVisible(false);
        astEstadoEstAgregar.setVisible(false);
        astNombreRespAgregar.setVisible(false);
        astApellido1RespAgregar.setVisible(false);
        astCedulaRespAgregar.setVisible(false);
        astFechaNacRespAgregar.setVisible(false);
        ((JTextField)campoFechaNacRespAgregar.getDateEditor().getUiComponent()).setEditable(false);
        campoFechaNacRespAgregar.getDateEditor().addPropertyChangeListener(
        new PropertyChangeListener() {
            @Override
            public void propertyChange(PropertyChangeEvent e) {
                if ("date".equals(e.getPropertyName())) {
                    actualizarControlesEstudiantesAgregar();
                }
            }
        });
        astCorreoRespAgregar.setVisible(false);
        astTelRespAgregar.setVisible(false);
        
        DocumentListener controlCambios = new DocumentListener() {
            @Override
            public void insertUpdate(DocumentEvent de) {
                actualizarControlesEstudiantesAgregar();
            }

            @Override
            public void removeUpdate(DocumentEvent de) {
                actualizarControlesEstudiantesAgregar();
            }

            @Override
            public void changedUpdate(DocumentEvent de) {
                actualizarControlesEstudiantesAgregar();
            }
 
        };
        campoNombreAgregar.getDocument().addDocumentListener(controlCambios);
        campoApellido1EstAgregar.getDocument().addDocumentListener(controlCambios);
        campoCedulaEstAgregar.getDocument().addDocumentListener(controlCambios);
        campoEmailEst1Agregar.getDocument().addDocumentListener(controlCambios);
        campoTel1EstAgregar.getDocument().addDocumentListener(controlCambios);
        campoNombreRespAgregar.getDocument().addDocumentListener(controlCambios);
        campoApellido1RespAgregar.getDocument().addDocumentListener(controlCambios);
        campoCedulaRespAgregar.getDocument().addDocumentListener(controlCambios);
        campoEmailRespAgregar.getDocument().addDocumentListener(controlCambios);
        campoTelRespAgregar.getDocument().addDocumentListener(controlCambios);
       
    }
    
    
    private void actualizarControlesEstudiantesAgregar(){
        if(campoNombreAgregar.isEnabled()){
            puedeIngresarExpediente2();
        }
    }
    
    private void puedeIngresarExpediente2(){
        if((!campoNombreAgregar.getText().equals("") && !campoApellido1EstAgregar.getText().equals("") && !campoCedulaEstAgregar.getText().equals("") && campoFechaNacEstAgregar.getDate()!=null && !campoEmailEst1Agregar.getText().equals("") && !campoTel1EstAgregar.getText().equals("") && (estadoActivoEstAgregar.isSelected()||estadoInactivoEstAgregar.isSelected()) && !campoCedulaRespAgregar.isEnabled()) || (!campoNombreAgregar.getText().equals("") && !campoApellido1EstAgregar.getText().equals("") && !campoCedulaEstAgregar.getText().equals("") && campoFechaNacEstAgregar.getDate()!=null && !campoEmailEst1Agregar.getText().equals("") && !campoTel1EstAgregar.getText().equals("") && (estadoActivoEstAgregar.isSelected()||estadoInactivoEstAgregar.isSelected()) && !campoNombreRespAgregar.getText().equals("") && !campoApellido1RespAgregar.getText().equals("") && !campoCedulaRespAgregar.getText().equals("") && campoFechaNacRespAgregar.getDate() != null && !campoEmailRespAgregar.getText().equals("") && !campoTelRespAgregar.getText().equals(""))){
            btnCrearEstAgregar.setEnabled(true);
        }
        else{
            btnCrearEstAgregar.setEnabled(false);
        }
        
    }
    
    private void puedeIngresarExpediente(){
        if(btnCrearEstAgregar.isEnabled()){
            if(filtrosEstudiante()){
                ingresarExpediente();
            }
        }
    }
    
    private boolean maxLargoNombreEst(){
        if(campoNombreAgregar.getText().length()<31){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean minLargoNombreEst(){
        if(campoNombreAgregar.getText().length()>1){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean maxLargoApellido1Est(){
        if(campoApellido1EstAgregar.getText().length()<31){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean minLargoApellido1Est(){
        if(campoApellido1EstAgregar.getText().length()>1){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean maxLargoApellido2Est(){
        if(campoApellido2EstAgregar.getText().length()<31){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean minLargoApellido2Est(){
        if(campoApellido2EstAgregar.getText().length()>1){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean maxLargoCedulaEst(){
        if(campoCedulaEstAgregar.getText().length()<13){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean minLargoCedulaEst(){
        if(campoCedulaEstAgregar.getText().length()>8){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean maxLargoEmail1Est(){
        if(campoEmailEst1Agregar.getText().length()<65){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean maxLargoEmail2Est(){
        if(campoEmailEst2Agregar.getText().length()<65){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean largoTel1Est(){
        if(campoTel1EstAgregar.getText().length()==8){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean largoTel2Est(){
        if(campoTel2EstAgregar.getText().length()==8){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean maxLargoNombreResp(){
        if(campoNombreRespAgregar.getText().length()<31){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean minLargoNombreResp(){
        if(campoNombreRespAgregar.getText().length()>1){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean maxLargoApellido1Resp(){
        if(campoApellido1RespAgregar.getText().length()<31){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean minLargoApellido1Resp(){
        if(campoApellido1RespAgregar.getText().length()>1){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean maxLargoApellido2Resp(){
        if(campoApellido2RespAgregar.getText().length()<31){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean minLargoApellido2Resp(){
        if(campoApellido2RespAgregar.getText().length()>1){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean maxLargoCedulaResp(){
        if(campoCedulaRespAgregar.getText().length()<13){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean minLargoCedulaResp(){
        if(campoCedulaRespAgregar.getText().length()>8){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean maxLargoEmailResp(){
        if(campoEmailRespAgregar.getText().length()<65){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean largoTelResp(){
        if(campoTelRespAgregar.getText().length()==8){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean filtrosEstudiante(){
        int filtro1,filtro2,filtro3,filtro4,filtro5,filtro6,filtro7,filtro8,filtro9,filtro10;
        filtro1=filtro2=filtro3=filtro4=filtro5=filtro6=filtro7=filtro8=filtro9=filtro10=0;
        
        if(!minLargoCedulaEst()||!maxLargoCedulaEst()){
            filtro1=1;
        }
        if(!minLargoNombreEst()||!maxLargoNombreEst()){
            filtro2=1;
        }
        if(!minLargoApellido1Est()||!maxLargoApellido1Est()){
            filtro3=1;
        }
        if(!campoApellido2EstAgregar.getText().equals("")){
            if(!minLargoApellido2Est()||!maxLargoApellido2Est()){
                filtro4=1;                         
            }
        }
        if(!maxLargoEmail1Est()){
            filtro5=1;
        }
        if(!validarCorreo(campoEmailEst1Agregar.getText())){
            filtro6=1;
        }
        if(!campoEmailEst2Agregar.getText().equals("")){
            if(!maxLargoEmail2Est()){
                filtro7=1;                         
            }
            if(!validarCorreo(campoEmailEst2Agregar.getText())){
                filtro8=1;
            }
        }
        if(!largoTel1Est()){
            filtro9=1;
        }
        if(!campoTel2EstAgregar.getText().equals("")){
            if(!largoTel2Est()){
                filtro10=1;
            }
        }
        
        if(validarMenorEdad(campoFechaNacEstAgregar)){//menor de edad
            int filtro11,filtro12,filtro13,filtro14,filtro15,filtro16,filtro17;
            filtro11=filtro12=filtro13=filtro14=filtro15=filtro16=filtro17=0;
        
            if(!minLargoCedulaResp()||!maxLargoCedulaResp()){
                filtro11=1;
            }
            if(!minLargoNombreResp()||!maxLargoNombreResp()){
                filtro12=1;
            }
            if(!minLargoApellido1Resp()||!maxLargoApellido1Resp()){
                filtro13=1;
            }
            if(!campoApellido2RespAgregar.getText().equals("")){
                if(!minLargoApellido2Resp()||!maxLargoApellido2Resp()){
                    filtro14=1;                         
                }
            }
            if(!maxLargoEmailResp()){
                filtro15=1;
            }
            if(!validarCorreo(campoEmailRespAgregar.getText())){
                filtro16=1;
            }
            if(!largoTelResp()){
                filtro17=1;
            }
            return filtroAvisosEstudianteMenor(filtro1,filtro2,filtro3,filtro4,filtro5,filtro6,filtro7,filtro8,filtro9,filtro10,filtro11,filtro12,filtro13,filtro14,filtro15,filtro16,filtro17);
        }
        else{//mayor de edad
            //System.out.print(filtro1+"\n"+filtro2+"\n"+filtro3+"\n"+filtro4+"\n"+filtro5+"\n"+filtro6+"\n"+filtro7+"\n"+filtro8+"\n"+filtro9+"\n"+filtro10);
            return filtroAvisosEstudianteMayor(filtro1,filtro2,filtro3,filtro4,filtro5,filtro6,filtro7,filtro8,filtro9,filtro10);
        }
    }
    
    private boolean filtroAvisosEstudianteMayor(int filtro1, int filtro2, int filtro3, int filtro4, int filtro5, int filtro6, int filtro7, int filtro8, int filtro9, int filtro10){
        String aviso1,aviso2,aviso3,aviso4,aviso5,aviso6,aviso7,aviso8,aviso9,aviso10;
        aviso1=aviso2=aviso3=aviso4=aviso5=aviso6=aviso7=aviso8=aviso9=aviso10="";
        
        if(filtro1==1){
            aviso1="\nLa cédula del estudiante no puede tener más de 12 y no menos de 9 caracteres";
        }
        if(filtro2==1){
            aviso2="\nEl nombre del estudiante no puede tener más de 30 y no menos de 1 caracter";
        }
        if(filtro3==1){
            aviso3="\nEl primer apellido del estudiante no puede tener más de 30 y no menos de 1 caracter";
        }
        if(filtro4==1){
            aviso4="\nEl segundo apellido del estudiante no puede tener más de 30 y no menos de 1 caracter";
        }
        if(filtro5==1){
            aviso5="\nEl primer correo eletrónico del estudiante no puede tener más de 64 caracteres";
        }
        if(filtro6==1){
            aviso6="\nEl formato del primer correo del estudiante debe tener el siguiente formato: inicio@primerDominio.segundoDominio"
                    + "\nEjemplo: are123(inicio)@gmail(primer dominio).com(segundo dominio)"
                    + "\nEl inicio debe tener mínimo un caracter al igual que el primer dominio. El segundo dominio un mínimo de dos.";
        }
        if(filtro7==1){
            aviso7="\nEl segundo correo eletrónico del estudiante no puede tener más de 64 caracteres";
        }
        if(filtro8==1){
            aviso8="\nEl formato del segundo correo del estudiante debe tener el siguiente formato: inicio@primerDominio.segundoDominio"
                    + "\nEjemplo: are123(inicio)@gmail(primer dominio).com(segundo dominio)"
                    + "\nEl inicio debe tener mínimo un caracter al igual que el primer dominio. El segundo dominio un mínimo de dos.";
        }
        if(filtro9==1){
            aviso9="\nEl primer teléfono del estudiante debe ser de 8 caracteres";
        }
        if(filtro10==1){
            aviso10="\nEl segundo teléfono del estudiante debe ser de 8 caracteres";
        }
        
        subrayadoErrorEstudianteMayor(filtro1,filtro2,filtro3,filtro4,filtro5,filtro6,filtro7,filtro8,filtro9,filtro10);
        
        if(aviso1.equals("")&&aviso2.equals("")&&aviso3.equals("")&&aviso4.equals("")&&aviso5.equals("")&&aviso6.equals("")&&aviso7.equals("")&&aviso8.equals("")&&aviso9.equals("")&&aviso10.equals("")){
            return true;
        }
        else{
            JOptionPane.showMessageDialog(null, aviso1+aviso2+aviso3+aviso4+aviso5+aviso6+aviso7+aviso8+aviso9+aviso10, "Error", JOptionPane.ERROR_MESSAGE);
            return false;
        }
    }
    
    private boolean filtroAvisosEstudianteMenor(int filtro1, int filtro2, int filtro3, int filtro4, int filtro5, int filtro6, int filtro7, int filtro8, int filtro9, int filtro10, int filtro11, int filtro12, int filtro13, int filtro14, int filtro15, int filtro16, int filtro17){
        String aviso1,aviso2,aviso3,aviso4,aviso5,aviso6,aviso7,aviso8,aviso9,aviso10,aviso11,aviso12,aviso13,aviso14,aviso15,aviso16,aviso17;
        aviso1=aviso2=aviso3=aviso4=aviso5=aviso6=aviso7=aviso8=aviso9=aviso10=aviso11=aviso12=aviso13=aviso14=aviso15=aviso16=aviso17="";
        
        if(filtro1==1){
            aviso1="\nLa cédula del estudiante no puede tener más de 12 y no menos de 9 caracteres";
        }
        if(filtro2==1){
            aviso2="\nEl nombre del estudiante no puede tener más de 30 y no menos de 1 caracter";
        }
        if(filtro3==1){
            aviso3="\nEl primer apellido del estudiante no puede tener más de 30 y no menos de 1 caracter";
        }
        if(filtro4==1){
            aviso4="\nEl segundo apellido del estudiante no puede tener más de 30 y no menos de 1 caracter";
        }
        if(filtro5==1){
            aviso5="\nEl primer correo eletrónico del estudiante no puede tener más de 64 caracteres";
        }
        if(filtro6==1){
            aviso6="\nEl formato del primer correo del estudiante debe tener el siguiente formato: inicio@primerDominio.segundoDominio"
                    + "\nEjemplo: are123(inicio)@gmail(primer dominio).com(segundo dominio)"
                    + "\nEl inicio debe tener mínimo un caracter al igual que el primer dominio. El segundo dominio un mínimo de dos.";
        }
        if(filtro7==1){
            aviso7="\nEl segundo correo eletrónico del estudiante no puede tener más de 64 caracteres";
        }
        if(filtro8==1){
            aviso8="\nEl formato del segundo correo del estudiante debe tener el siguiente formato: inicio@primerDominio.segundoDominio"
                    + "\nEjemplo: are123(inicio)@gmail(primer dominio).com(segundo dominio)"
                    + "\nEl inicio debe tener mínimo un caracter al igual que el primer dominio. El segundo dominio un mínimo de dos.";
        }
        if(filtro9==1){
            aviso9="\nEl primer teléfono del estudiante debe ser de 8 caracteres";
        }
        if(filtro10==1){
            aviso10="\nEl segundo teléfono del estudiante debe ser de 8 caracteres";
        }
        if(filtro11==1){
            aviso11="\nLa cédula del responsable del estudiante no puede tener más de 12 y no menos de 9 caracteres";
        }
        if(filtro12==1){
            aviso12="\nEl nombre del responsable del estudiante no puede tener más de 30 y no menos de 1 caracter";
        }
        if(filtro13==1){
            aviso13="\nEl primer apellido del responsable del estudiante no puede tener más de 30 y no menos de 1 caracter";
        }
        if(filtro14==1){
            aviso14="\nEl segundo apellido del responsable del estudiante no puede tener más de 30 y no menos de 1 caracter";
        }     
        if(filtro15==1){
            aviso15="\nEl correo eletrónico del responsable del estudiante no puede tener más de 64 caracteres";
        }
        if(filtro16==1){
            aviso16="\nEl formato del correo del responsable del estudiante debe tener el siguiente formato: inicio@primerDominio.segundoDominio"
                    + "\nEjemplo: are123(inicio)@gmail(primer dominio).com(segundo dominio)"
                    + "\nEl inicio debe tener mínimo un caracter al igual que el primer dominio. El segundo dominio un mínimo de dos.";
        }
        if(filtro17==1){
            aviso17="\nEl teléfono del responsable del estudiante debe ser de 8 caracteres";
        }
        
        subrayadoErrorEstudianteMenor(filtro1,filtro2,filtro3,filtro4,filtro5,filtro6,filtro7,filtro8,filtro9,filtro10,filtro11,filtro12,filtro13,filtro14,filtro15,filtro16,filtro17);
        
        if(aviso1.equals("")&&aviso2.equals("")&&aviso3.equals("")&&aviso4.equals("")&&aviso5.equals("")&&aviso6.equals("")&&aviso7.equals("")&&aviso8.equals("")&&aviso9.equals("")&&aviso10.equals("")&&aviso11.equals("")&&aviso12.equals("")&&aviso13.equals("")&&aviso14.equals("")&&aviso15.equals("")&&aviso16.equals("")&&aviso17.equals("")){
            return true;
        }
        else{
            JOptionPane.showMessageDialog(null, aviso1+aviso2+aviso3+aviso4+aviso5+aviso6+aviso7+aviso8+aviso9+aviso10+aviso11+aviso12+aviso13+aviso14+aviso15+aviso16+aviso17, "Error", JOptionPane.ERROR_MESSAGE);
            return false;
        }
    }
    
    private void subrayadoErrorEstudianteMayor(int filtro1, int filtro2, int filtro3, int filtro4, int filtro5, int filtro6, int filtro7, int filtro8, int filtro9, int filtro10){
        if(filtro1==1){
            campoCedulaEstAgregar.setBackground(new Color(255,51,51));
            campoCedulaEstAgregar.setToolTipText("Revisar cédula de estudiante");
        }
        if(filtro1==0){
            campoCedulaEstAgregar.setBackground(Color.white);
            campoCedulaEstAgregar.setToolTipText(null);
        }
        if(filtro2==1){
            campoNombreAgregar.setBackground(new Color(255,51,51));
            campoNombreAgregar.setToolTipText("Revisar nombre de estudiante");
        }
        if(filtro2==0){
            campoNombreAgregar.setBackground(Color.white);
            campoNombreAgregar.setToolTipText(null);
        }
        if(filtro3==1){
            campoApellido1EstAgregar.setBackground(new Color(255,51,51));
            campoApellido1EstAgregar.setToolTipText("Revisar apellido de estudiante");
        }
        if(filtro3==0){
            campoApellido1EstAgregar.setBackground(Color.white);
            campoApellido1EstAgregar.setToolTipText(null);
        }
        if(filtro4==1){
            campoApellido2EstAgregar.setBackground(new Color(255,51,51));
            campoApellido2EstAgregar.setToolTipText("Revisar apellido de estudiante");
        }
        if(filtro4==0){
            campoApellido2EstAgregar.setBackground(Color.white);
            campoApellido2EstAgregar.setToolTipText(null);
        }
        if(filtro5==1||filtro6==1){
            campoEmailEst1Agregar.setBackground(new Color(255,51,51));
            campoEmailEst1Agregar.setToolTipText("Revisar correo de estudiante");
        }
        if(filtro5==0&&filtro6==0){
            campoEmailEst1Agregar.setBackground(Color.white);
            campoEmailEst1Agregar.setToolTipText(null);
        }
        if(filtro7==1|filtro8==1){
            campoEmailEst2Agregar.setBackground(new Color(255,51,51));
            campoEmailEst2Agregar.setToolTipText("Revisar correo de estudiante");
        }
        if(filtro7==0&&filtro8==0){
            campoEmailEst2Agregar.setBackground(Color.white);
            campoEmailEst2Agregar.setToolTipText(null);
        }
        if(filtro9==1){
            campoTel1EstAgregar.setBackground(new Color(255,51,51));
            campoTel1EstAgregar.setToolTipText("Revisar teléfono de estudiante");
        }
        if(filtro9==0){
            campoTel1EstAgregar.setBackground(Color.white);
            campoTel1EstAgregar.setToolTipText(null);
        }
        if(filtro10==1){
            campoTel2EstAgregar.setBackground(new Color(255,51,51));
            campoTel2EstAgregar.setToolTipText("Revisar teléfono de estudiante");
        }
        if(filtro10==0){
            campoTel2EstAgregar.setBackground(Color.white);
            campoTel2EstAgregar.setToolTipText(null);
        }
    }
    
    private void subrayadoErrorEstudianteMenor(int filtro1, int filtro2, int filtro3, int filtro4, int filtro5, int filtro6, int filtro7, int filtro8, int filtro9, int filtro10, int filtro11, int filtro12, int filtro13, int filtro14, int filtro15, int filtro16, int filtro17){
        if(filtro1==1){
            campoCedulaEstAgregar.setBackground(new Color(255,51,51));
            campoCedulaEstAgregar.setToolTipText("Revisar cédula de estudiante");
        }
        if(filtro1==0){
            campoCedulaEstAgregar.setBackground(Color.white);
            campoCedulaEstAgregar.setToolTipText(null);
        }
        if(filtro2==1){
            campoNombreAgregar.setBackground(new Color(255,51,51));
            campoNombreAgregar.setToolTipText("Revisar nombre de estudiante");
        }
        if(filtro2==0){
            campoNombreAgregar.setBackground(Color.white);
            campoNombreAgregar.setToolTipText(null);
        }
        if(filtro3==1){
            campoApellido1EstAgregar.setBackground(new Color(255,51,51));
            campoApellido1EstAgregar.setToolTipText("Revisar apellido de estudiante");
        }
        if(filtro3==0){
            campoApellido1EstAgregar.setBackground(Color.white);
            campoApellido1EstAgregar.setToolTipText(null);
        }
        if(filtro4==1){
            campoApellido2EstAgregar.setBackground(new Color(255,51,51));
            campoApellido2EstAgregar.setToolTipText("Revisar apellido de estudiante");
        }
        if(filtro4==0){
            campoApellido2EstAgregar.setBackground(Color.white);
            campoApellido2EstAgregar.setToolTipText(null);
        }
        if(filtro5==1||filtro6==1){
            campoEmailEst1Agregar.setBackground(new Color(255,51,51));
            campoEmailEst1Agregar.setToolTipText("Revisar correo de estudiante");
        }
        if(filtro5==0&&filtro6==0){
            campoEmailEst1Agregar.setBackground(Color.white);
            campoEmailEst1Agregar.setToolTipText(null);
        }
        if(filtro7==1|filtro8==1){
            campoEmailEst2Agregar.setBackground(new Color(255,51,51));
            campoEmailEst2Agregar.setToolTipText("Revisar correo de estudiante");
        }
        if(filtro7==0&&filtro8==0){
            campoEmailEst2Agregar.setBackground(Color.white);
            campoEmailEst2Agregar.setToolTipText(null);
        }
        if(filtro9==1){
            campoTel1EstAgregar.setBackground(new Color(255,51,51));
            campoTel1EstAgregar.setToolTipText("Revisar teléfono de estudiante");
        }
        if(filtro9==0){
            campoTel1EstAgregar.setBackground(Color.white);
            campoTel1EstAgregar.setToolTipText(null);
        }
        if(filtro10==1){
            campoTel2EstAgregar.setBackground(new Color(255,51,51));
            campoTel2EstAgregar.setToolTipText("Revisar teléfono de estudiante");
        }
        if(filtro10==0){
            campoTel2EstAgregar.setBackground(Color.white);
            campoTel2EstAgregar.setToolTipText(null);
        }
        if(filtro11==1){
            campoCedulaRespAgregar.setBackground(new Color(255,51,51));
            campoCedulaRespAgregar.setToolTipText("Revisar cédula del responsable");
        }
        if(filtro11==0){
            campoCedulaRespAgregar.setBackground(Color.white);
            campoCedulaRespAgregar.setToolTipText(null);
        }
        if(filtro12==1){
            campoNombreRespAgregar.setBackground(new Color(255,51,51));
            campoNombreRespAgregar.setToolTipText("Revisar nombre del responsable");
        }
        if(filtro12==0){
            campoNombreRespAgregar.setBackground(Color.white);
            campoNombreRespAgregar.setToolTipText(null);
        }
        if(filtro13==1){
            campoApellido1RespAgregar.setBackground(new Color(255,51,51));
            campoApellido1RespAgregar.setToolTipText("Revisar apellido del responsable");
        }
        if(filtro13==0){
            campoApellido1RespAgregar.setBackground(Color.white);
            campoApellido1RespAgregar.setToolTipText(null);
        }
        if(filtro14==1){
            campoApellido2RespAgregar.setBackground(new Color(255,51,51));
            campoApellido2RespAgregar.setToolTipText("Revisar apellido del responsable");
        }
        if(filtro14==0){
            campoApellido2RespAgregar.setBackground(Color.white);
            campoApellido2RespAgregar.setToolTipText(null);
        }
        if(filtro15==1||filtro16==1){
            campoEmailRespAgregar.setBackground(new Color(255,51,51));
            campoEmailRespAgregar.setToolTipText("Revisar correo del responsable");
        }
        if(filtro15==0&&filtro16==0){
            campoEmailRespAgregar.setBackground(Color.white);
            campoEmailRespAgregar.setToolTipText(null);
        }
        if(filtro17==1){
            campoTelRespAgregar.setBackground(new Color(255,51,51));
            campoTelRespAgregar.setToolTipText("Revisar teléfono del responsable");
        }
        if(filtro17==0){
            campoTelRespAgregar.setBackground(Color.white);
            campoTelRespAgregar.setToolTipText(null);
        }
    }
    
    private void initComponents3(){
        scrollEstudiantesActualizar.getViewport().setBackground(Color.WHITE);
        ((JTextField)campoFechaNacEstAct.getDateEditor().getUiComponent()).setEditable(false);
        campoFechaNacEstAct.getDateEditor().addPropertyChangeListener(
        new PropertyChangeListener() {
            @Override
            public void propertyChange(PropertyChangeEvent e) {
                if ("date".equals(e.getPropertyName())) {
                    actualizarControlesEstudiantesAct();
                    if(campoFechaNacEstAct.getCalendar()!=null){
                        if(validarMenorEdad(campoFechaNacEstAct)){
                            activarCamposResponsableAct();
                        }
                        else{
                            desactivarCamposResponsableAct();
                        }
                    }
                }
            }
        });
        ((JTextField)campoFechaNacRespAct.getDateEditor().getUiComponent()).setEditable(false);
        campoFechaNacRespAct.getDateEditor().addPropertyChangeListener(
        new PropertyChangeListener() {
            @Override
            public void propertyChange(PropertyChangeEvent e) {
                if ("date".equals(e.getPropertyName())) {
                    actualizarControlesEstudiantesAct();
                }
            }
        });
        
        DocumentListener controlCambios = new DocumentListener() {
            @Override
            public void insertUpdate(DocumentEvent de) {
                actualizarControlesEstudiantesAct();
            }

            @Override
            public void removeUpdate(DocumentEvent de) {
                actualizarControlesEstudiantesAct();
            }

            @Override
            public void changedUpdate(DocumentEvent de) {
                actualizarControlesEstudiantesAct();
            }
 
        };
        campoNombreEstAct.getDocument().addDocumentListener(controlCambios);
        campoApellido1EstAct.getDocument().addDocumentListener(controlCambios);
        campoCedulaEstAct.getDocument().addDocumentListener(controlCambios);
        campoEmailEst1Act.getDocument().addDocumentListener(controlCambios);
        campoTel1EstAct.getDocument().addDocumentListener(controlCambios);
        campoNombreRespAct.getDocument().addDocumentListener(controlCambios);
        campoApellido1RespAct.getDocument().addDocumentListener(controlCambios);
        campoCedulaRespAct.getDocument().addDocumentListener(controlCambios);
        campoEmailRespAct.getDocument().addDocumentListener(controlCambios);
        campoTelRespAct.getDocument().addDocumentListener(controlCambios);
        
        tablaEstudiantesActualizar.getColumnModel().getColumn(0).setMaxWidth(55);
        tablaEstudiantesActualizar.getColumnModel().getColumn(0).setMinWidth(55);
        tablaEstudiantesActualizar.getColumnModel().getColumn(1).setMaxWidth(45);
        tablaEstudiantesActualizar.getColumnModel().getColumn(1).setMinWidth(45);
        tablaEstudiantesActualizar.getColumnModel().getColumn(2).setMaxWidth(115);
        tablaEstudiantesActualizar.getColumnModel().getColumn(2).setMinWidth(115);
        tablaEstudiantesActualizar.getColumnModel().getColumn(3).setMaxWidth(65);
        tablaEstudiantesActualizar.getColumnModel().getColumn(3).setMinWidth(65);
        tablaEstudiantesActualizar.getColumnModel().getColumn(4).setMaxWidth(115);
        tablaEstudiantesActualizar.getColumnModel().getColumn(4).setMinWidth(115);
        tablaEstudiantesActualizar.getColumnModel().getColumn(5).setMaxWidth(115);
        tablaEstudiantesActualizar.getColumnModel().getColumn(5).setMinWidth(115);
        tablaEstudiantesActualizar.getColumnModel().getColumn(6).setMaxWidth(45);
        tablaEstudiantesActualizar.getColumnModel().getColumn(6).setMinWidth(45);
        tablaEstudiantesActualizar.getColumnModel().getColumn(7).setMaxWidth(45);
        tablaEstudiantesActualizar.getColumnModel().getColumn(7).setMinWidth(45);
        tablaEstudiantesActualizar.getColumnModel().getColumn(8).setMaxWidth(45);
        tablaEstudiantesActualizar.getColumnModel().getColumn(8).setMinWidth(45);
        tablaEstudiantesActualizar.getColumnModel().getColumn(9).setMaxWidth(115);
        tablaEstudiantesActualizar.getColumnModel().getColumn(9).setMinWidth(115);
        tablaEstudiantesActualizar.getColumnModel().getColumn(10).setMaxWidth(65);
        tablaEstudiantesActualizar.getColumnModel().getColumn(10).setMinWidth(65);
        tablaEstudiantesActualizar.getColumnModel().getColumn(11).setMaxWidth(115);
        tablaEstudiantesActualizar.getColumnModel().getColumn(11).setMinWidth(115);
        tablaEstudiantesActualizar.getColumnModel().getColumn(12).setMaxWidth(45);
        tablaEstudiantesActualizar.getColumnModel().getColumn(12).setMinWidth(45);
         
        tablaEstudiantesActualizar.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                rellenarCamposActualizar();
                habilitarCamposRespectivos();
                actualizarControlesEstudiantesAct();
            }
        });
    }
    
    private void activarCamposResponsableAct(){
        btnActualizarEst.setEnabled(false);
        campoCedulaRespAct.setEnabled(true);
        campoCedulaRespAct.setBackground(Color.white);
        campoNombreRespAct.setEnabled(true);
        campoNombreRespAct.setBackground(Color.white);
        campoApellido1RespAct.setEnabled(true);
        campoApellido1RespAct.setBackground(Color.white);
        campoApellido2RespAct.setEnabled(true);
        campoApellido2RespAct.setBackground(Color.white);
        campoFechaNacRespAct.setEnabled(true);
        ((JTextField)campoFechaNacRespAct.getDateEditor().getUiComponent()).setBackground(Color.white);
        campoEmailRespAct.setEnabled(true);
        campoEmailRespAct.setBackground(Color.white);
        campoTelRespAct.setEnabled(true);
        campoTelRespAct.setBackground(Color.white);
    }
    
    private void desactivarCamposResponsableAct(){
        campoNombreRespAct.setText("");
        campoNombreRespAct.setBackground(new Color(240,240,240));
        campoNombreRespAct.setToolTipText(null);
        campoNombreRespAct.setEnabled(false);
        campoApellido1RespAct.setText("");
        campoApellido1RespAct.setBackground(new Color(240,240,240));
        campoApellido1RespAct.setToolTipText(null);
        campoApellido1RespAct.setEnabled(false);
        campoApellido2RespAct.setText("");
        campoApellido2RespAct.setBackground(new Color(240,240,240));
        campoApellido2RespAct.setToolTipText(null);
        campoApellido2RespAct.setEnabled(false);
        campoCedulaRespAct.setText("");
        campoCedulaRespAct.setEnabled(false);
        campoCedulaRespAct.setBackground(new Color(240,240,240));
        campoCedulaRespAct.setToolTipText(null);
        campoFechaNacRespAct.setDate(null);
        campoFechaNacRespAct.setEnabled(false);
        campoEmailRespAct.setText("");
        campoEmailRespAct.setBackground(new Color(240,240,240));
        campoEmailRespAct.setToolTipText(null);
        campoEmailRespAct.setEnabled(false);
        campoTelRespAct.setText("");
        campoTelRespAct.setBackground(new Color(240,240,240));
        campoTelRespAct.setToolTipText(null);
        campoTelRespAct.setEnabled(false);
    }
    
    private void cancelarOActualizarExpediente(int modo){
        campoBusquedaEstActualizar.requestFocus();
        btnActualizarEst.setEnabled(false);
        btnCancelarEstAct.setEnabled(false);
        campoNombreEstAct.setBackground(new Color(240,240,240));
        campoNombreEstAct.setToolTipText(null);        
        campoNombreEstAct.setEnabled(false);
        campoNombreEstAct.setText("");
        campoApellido1EstAct.setBackground(new Color(240,240,240));
        campoApellido1EstAct.setToolTipText(null);
        campoApellido1EstAct.setEnabled(false);
        campoApellido1EstAct.setText("");
        campoApellido2EstAct.setBackground(new Color(240,240,240));
        campoApellido2EstAct.setToolTipText(null);
        campoApellido2EstAct.setEnabled(false);
        campoApellido2EstAct.setText("");
        campoCedulaEstAct.setBackground(new Color(240,240,240));
        campoCedulaEstAct.setText("");
        campoFechaNacEstAct.setDate(null);
        campoFechaNacEstAct.setEnabled(false);
        campoEmailEst1Act.setBackground(new Color(240,240,240));
        campoEmailEst1Act.setToolTipText(null);
        campoEmailEst1Act.setEnabled(false);
        campoEmailEst1Act.setText("");
        campoEmailEst2Act.setBackground(new Color(240,240,240));
        campoEmailEst2Act.setToolTipText(null);
        campoEmailEst2Act.setEnabled(false);
        campoEmailEst2Act.setText("");
        campoTel1EstAct.setBackground(new Color(240,240,240));
        campoTel1EstAct.setToolTipText(null);
        campoTel1EstAct.setEnabled(false);
        campoTel1EstAct.setText("");
        campoTel2EstAct.setBackground(new Color(240,240,240));
        campoTel2EstAct.setToolTipText(null);
        campoTel2EstAct.setEnabled(false);
        campoTel2EstAct.setText("");
        campoNombreRespAct.setBackground(new Color(240,240,240));
        campoNombreRespAct.setToolTipText(null);
        campoNombreRespAct.setEnabled(false);
        campoNombreRespAct.setText("");
        campoApellido1RespAct.setBackground(new Color(240,240,240));
        campoApellido1RespAct.setToolTipText(null);
        campoApellido1RespAct.setEnabled(false);
        campoApellido1RespAct.setText("");
        campoApellido2RespAct.setBackground(new Color(240,240,240));
        campoApellido2RespAct.setToolTipText(null);
        campoApellido2RespAct.setEnabled(false);
        campoApellido2RespAct.setText("");
        campoCedulaRespAct.setBackground(new Color(240,240,240));
        campoCedulaRespAct.setToolTipText(null);
        campoCedulaRespAct.setEnabled(false);
        campoCedulaRespAct.setText("");
        campoFechaNacRespAct.setDate(null);
        campoFechaNacRespAct.setEnabled(false);
        campoEmailRespAct.setBackground(new Color(240,240,240));
        campoEmailRespAct.setToolTipText(null);
        campoEmailRespAct.setEnabled(false);
        campoEmailRespAct.setText("");
        campoTelRespAct.setBackground(new Color(240,240,240));
        campoTelRespAct.setToolTipText(null);
        campoTelRespAct.setEnabled(false);
        campoTelRespAct.setText("");
        estadoActivoEstAct.setSelected(false);
        estadoActivoEstAct.setEnabled(false);
        estadoInactivoEstAct.setSelected(false);
        estadoInactivoEstAct.setEnabled(false);
        if(modo==1){
            tablaEstudiantesActualizar.clearSelection();
            campoBusquedaEstActualizar.setText(null);
            actualizarEstudianteSorter();
        }
    }
    
    private void actualizarEstSelecTabla(){
        if(estadoActivoEstAct.isSelected()){
            tablaEstudiantesActualizar.setValueAt("Activo", tablaEstudiantesActualizar.getSelectedRow(), 0);
        }
        else{
            tablaEstudiantesActualizar.setValueAt("Inactivo", tablaEstudiantesActualizar.getSelectedRow(), 0);
        }
        tablaEstudiantesActualizar.setValueAt(campoCedulaEstAct.getText(), tablaEstudiantesActualizar.getSelectedRow(), 1);
        tablaEstudiantesActualizar.setValueAt(campoNombreEstAct.getText().replaceAll("\\s+$","")+" "+campoApellido1EstAct.getText()+" "+campoApellido2EstAct.getText(), tablaEstudiantesActualizar.getSelectedRow(), 2);
        tablaEstudiantesActualizar.setValueAt(((JTextField)campoFechaNacEstAct.getDateEditor().getUiComponent()).getText(), tablaEstudiantesActualizar.getSelectedRow(), 3);
        tablaEstudiantesActualizar.setValueAt(campoEmailEst1Act.getText(), tablaEstudiantesActualizar.getSelectedRow(), 4);
        if(campoEmailEst2Act.getText()!=null){
            tablaEstudiantesActualizar.setValueAt(campoEmailEst2Act.getText(), tablaEstudiantesActualizar.getSelectedRow(), 5);
        }
        tablaEstudiantesActualizar.setValueAt(campoTel1EstAct.getText(), tablaEstudiantesActualizar.getSelectedRow(), 6);
        if(campoTel2EstAct.getText()!=null){
            tablaEstudiantesActualizar.setValueAt(campoTel2EstAct.getText(), tablaEstudiantesActualizar.getSelectedRow(), 7);
        }
        if(campoCedulaRespAct.getText()!=null){
            tablaEstudiantesActualizar.setValueAt(campoCedulaRespAct.getText(), tablaEstudiantesActualizar.getSelectedRow(), 8);
        }
        String resp="";
        if(campoNombreRespAct.getText()!=null){
            resp=campoNombreRespAct.getText().replaceAll("\\s+$","")+" ";
        }
        if(campoApellido1RespAct.getText()!=null){
            resp=resp+campoApellido1RespAct.getText()+" ";
        }
        if(campoApellido2RespAct.getText()!=null){
            resp=resp+campoApellido2RespAct.getText()+" ";
        }
        tablaEstudiantesActualizar.setValueAt(resp, tablaEstudiantesActualizar.getSelectedRow(), 9);
        if(campoFechaNacRespAct.getDate()!=null){
            tablaEstudiantesActualizar.setValueAt(((JTextField)campoFechaNacRespAct.getDateEditor().getUiComponent()).getText(), tablaEstudiantesActualizar.getSelectedRow(), 10);
        }
        if(campoEmailRespAct.getText()!=null){
            tablaEstudiantesActualizar.setValueAt(campoEmailRespAct.getText(), tablaEstudiantesActualizar.getSelectedRow(), 11);
        }
        if(campoTelRespAct.getText()!=null){
            tablaEstudiantesActualizar.setValueAt(campoTelRespAct.getText(), tablaEstudiantesActualizar.getSelectedRow(), 12);
        }
    }
    
    private void rellenarCamposActualizar(){
        if(((String)tablaEstudiantesActualizar.getValueAt(tablaEstudiantesActualizar.getSelectedRow(), 0)).replaceAll("\\s+$","").equals("Activo")){
            estadoActivoEstAct.setSelected(true);
            estadoInactivoEstAct.setSelected(false);
        }
        else{
            estadoActivoEstAct.setSelected(false);
            estadoInactivoEstAct.setSelected(true);
        }
        campoCedulaEstAct.setText(((String)tablaEstudiantesActualizar.getValueAt(tablaEstudiantesActualizar.getSelectedRow(), 1)).replaceAll("\\s+$",""));
        campoNombreEstAct.setToolTipText(null);
        campoApellido1EstAct.setToolTipText(null);
        campoApellido2EstAct.setToolTipText(null);
        String nombre,apellido1,apellido2;
        nombre=apellido1=apellido2="";
        int largo=((String)tablaEstudiantesActualizar.getValueAt(tablaEstudiantesActualizar.getSelectedRow(), 2)).replaceAll("\\s+$","").length();
        String nombreComp=((String)tablaEstudiantesActualizar.getValueAt(tablaEstudiantesActualizar.getSelectedRow(), 2)).replaceAll("\\s+$","");
        int i=0;
        for(;i<largo;i++){
            if(nombreComp.charAt(i)!=' '){
                nombre=nombre+nombreComp.charAt(i);
            }
            else{
                i++;
                break;
            }
        }
        for(;i<largo;i++){
            if(nombreComp.charAt(i)!=' '){
                apellido1=apellido1+nombreComp.charAt(i);
            }
            else{
                i++;
                break;
            }
        }
        for(;i<largo;i++){
            if(nombreComp.charAt(i)!=' '){
                apellido2=apellido2+nombreComp.charAt(i);
            }
            else{
                break;
            }
        }
        campoNombreEstAct.setText(nombre);
        campoApellido1EstAct.setText(apellido1);
        if(!apellido2.equals("")){
            campoApellido2EstAct.setText(apellido2);
        }
        else{
            campoApellido2EstAct.setText("");
        }
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
	String dateInString = ((String)tablaEstudiantesActualizar.getValueAt(tablaEstudiantesActualizar.getSelectedRow(), 3)).replaceAll("\\s+$","");
 
	try {
		Date date = formatter.parse(dateInString);
                campoFechaNacEstAct.setDate(date);
                
	} catch (ParseException e) {
		e.printStackTrace();
	}
        
        campoEmailEst1Act.setToolTipText(null);
        campoEmailEst1Act.setText(((String)tablaEstudiantesActualizar.getValueAt(tablaEstudiantesActualizar.getSelectedRow(), 4)).replaceAll("\\s+$",""));
        campoEmailEst2Act.setToolTipText(null);
        if(tablaEstudiantesActualizar.getValueAt(tablaEstudiantesActualizar.getSelectedRow(), 5)!=null){
            campoEmailEst2Act.setText(((String)tablaEstudiantesActualizar.getValueAt(tablaEstudiantesActualizar.getSelectedRow(), 5)).replaceAll("\\s+$",""));
        }
        else{
            campoEmailEst2Act.setText("");
        }
        campoTel1EstAct.setToolTipText(null);
        campoTel1EstAct.setText(""+tablaEstudiantesActualizar.getValueAt(tablaEstudiantesActualizar.getSelectedRow(), 6));
        campoTel2EstAct.setToolTipText(null);
        if(tablaEstudiantesActualizar.getValueAt(tablaEstudiantesActualizar.getSelectedRow(), 7)!=null){
            campoTel2EstAct.setText((""+tablaEstudiantesActualizar.getValueAt(tablaEstudiantesActualizar.getSelectedRow(), 7)));
        }
        else{
            campoTel2EstAct.setText("");
        }
        
        campoCedulaRespAct.setToolTipText(null);
        if(tablaEstudiantesActualizar.getValueAt(tablaEstudiantesActualizar.getSelectedRow(), 8)!=null){
            campoCedulaRespAct.setText(((String)tablaEstudiantesActualizar.getValueAt(tablaEstudiantesActualizar.getSelectedRow(), 8)).replaceAll("\\s+$",""));
        }
         
        campoNombreRespAct.setToolTipText(null);
        campoApellido1RespAct.setToolTipText(null);
        campoApellido2RespAct.setToolTipText(null);
        if(tablaEstudiantesActualizar.getValueAt(tablaEstudiantesActualizar.getSelectedRow(), 9)!=null){
            String nombreR,apellido1R,apellido2R;
            nombreR=apellido1R=apellido2R="";
            int largoR=((String)tablaEstudiantesActualizar.getValueAt(tablaEstudiantesActualizar.getSelectedRow(), 9)).replaceAll("\\s+$","").length();
            String nombreCompR=((String)tablaEstudiantesActualizar.getValueAt(tablaEstudiantesActualizar.getSelectedRow(), 9)).replaceAll("\\s+$","");
            int j=0;
            for(;j<largoR;j++){
                if(nombreCompR.charAt(j)!=' '){
                    nombreR=nombreR+nombreCompR.charAt(j);
                }
                else{
                    j++;
                    break;
                }
            }
            for(;j<largoR;j++){
                if(nombreCompR.charAt(j)!=' '){
                    apellido1R=apellido1R+nombreCompR.charAt(j);
                }
                else{
                    j++;
                    break;
                }
            } 
            for(;j<largoR;j++){
                if(nombreCompR.charAt(j)!=' '){
                    apellido2R=apellido2R+nombreCompR.charAt(j);
                }
                else{
                    break;
                }
            }
            campoNombreRespAct.setText(nombreR);
            campoApellido1RespAct.setText(apellido1R);
            if(!apellido2R.equals("")){
                campoApellido2RespAct.setText(apellido2R);
            }
            else{
                campoApellido2RespAct.setText("");
            }
        }
        if(tablaEstudiantesActualizar.getValueAt(tablaEstudiantesActualizar.getSelectedRow(), 10)!=null){
        
            dateInString = ((String)tablaEstudiantesActualizar.getValueAt(tablaEstudiantesActualizar.getSelectedRow(), 10)).replaceAll("\\s+$","");
 
            try {
		Date date = formatter.parse(dateInString);
                campoFechaNacRespAct.setDate(date);
                
            } catch (ParseException e) {
                e.printStackTrace();
            }
   
        }
        campoEmailRespAct.setToolTipText(null);
        if(tablaEstudiantesActualizar.getValueAt(tablaEstudiantesActualizar.getSelectedRow(), 11)!=null){ 
            campoEmailRespAct.setText(((String)tablaEstudiantesActualizar.getValueAt(tablaEstudiantesActualizar.getSelectedRow(), 11)).replaceAll("\\s+$",""));
        }
        campoTelRespAct.setToolTipText(null);
        if(tablaEstudiantesActualizar.getValueAt(tablaEstudiantesActualizar.getSelectedRow(), 12)!=null){
            campoTelRespAct.setText(""+tablaEstudiantesActualizar.getValueAt(tablaEstudiantesActualizar.getSelectedRow(), 12));
        }
    }
    
    private void habilitarCamposRespectivos(){
        btnCancelarEstAct.setEnabled(true);
        campoCedulaEstAct.setBackground(new Color(240,240,240));
        campoCedulaEstAct.requestFocus();
        campoNombreEstAct.setEnabled(true);
        campoNombreEstAct.setBackground(Color.white);
        campoApellido1EstAct.setEnabled(true);
        campoApellido1EstAct.setBackground(Color.white);
        campoApellido2EstAct.setEnabled(true);
        campoApellido2EstAct.setBackground(Color.white);
        campoFechaNacEstAct.setEnabled(true);
        ((JTextField)campoFechaNacEstAct.getDateEditor().getUiComponent()).setBackground(Color.white);
        campoEmailEst1Act.setEnabled(true);
        campoEmailEst1Act.setBackground(Color.white);
        campoEmailEst2Act.setBackground(Color.white);
        campoEmailEst2Act.setEnabled(true);
        campoTel1EstAct.setBackground(Color.white);
        campoTel1EstAct.setEnabled(true);
        campoTel2EstAct.setBackground(Color.white);
        campoTel2EstAct.setEnabled(true);
        estadoActivoEstAct.setEnabled(true);
        estadoInactivoEstAct.setEnabled(true);
        if(!campoCedulaRespAct.getText().equals("")){
            campoCedulaRespAct.setEnabled(true);
            campoNombreRespAct.setEnabled(true);
            campoApellido1RespAct.setEnabled(true);
            campoApellido2RespAct.setEnabled(true);
            campoFechaNacRespAct.setEnabled(true);
            ((JTextField)campoFechaNacRespAct.getDateEditor().getUiComponent()).setBackground(Color.white);
            campoEmailRespAct.setEnabled(true);
            campoTelRespAct.setEnabled(true);
        }
        else{
            if(campoCedulaRespAct.getText().equals("")){
                campoCedulaRespAct.setEnabled(false);
                campoNombreRespAct.setEnabled(false);
                campoApellido1RespAct.setEnabled(false);
                campoApellido2RespAct.setEnabled(false);
                campoFechaNacRespAct.setEnabled(false);
                campoEmailRespAct.setEnabled(false);
                campoTelRespAct.setEnabled(false);
            }
        }
    }
    
    private void actualizarEstudianteSorter(){
        TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(tablaEstudiantesActualizar.getModel());
        tablaEstudiantesActualizar.setRowSorter(sorter);
        if(campoBusquedaEstActualizar.getText().isEmpty()){
            sorter.setRowFilter(null);
        }    
        else{
            try{
                sorter.setRowFilter(RowFilter.regexFilter(campoBusquedaEstActualizar.getText()));
            }catch (PatternSyntaxException pse) {
                System.err.println("Bad regex pattern");
            }
        }
    }
    
    private void deseleccionadoActualizar(){
        if(tablaEstudiantesActualizar.getSelectedRow()==-1){
            cancelarOActualizarExpediente(0);
        }
    }
    
    private void actualizarControlesEstudiantesAct(){
        if(campoNombreEstAct.isEnabled()){
            puedeActualizarExpediente2();
        }
    }
    
    private void puedeActualizarExpediente2(){
        if((!campoNombreEstAct.getText().equals("") && !campoApellido1EstAct.getText().equals("") && !campoCedulaEstAct.getText().equals("") && campoFechaNacEstAct.getDate()!=null && !campoEmailEst1Act.getText().equals("") && !campoTel1EstAct.getText().equals("") && (estadoActivoEstAct.isSelected()||estadoInactivoEstAct.isSelected()) && !campoCedulaRespAct.isEnabled()) || (!campoNombreEstAct.getText().equals("") && !campoApellido1EstAct.getText().equals("") && !campoCedulaEstAct.getText().equals("") && campoFechaNacEstAct.getDate()!=null && !campoEmailEst1Act.getText().equals("") && !campoTel1EstAct.getText().equals("") && (estadoActivoEstAct.isSelected()||estadoInactivoEstAct.isSelected()) && !campoNombreRespAct.getText().equals("") && !campoApellido1RespAct.getText().equals("") && !campoCedulaRespAct.getText().equals("") && campoFechaNacRespAct.getDate() != null && !campoEmailRespAct.getText().equals("") && !campoTelRespAct.getText().equals(""))){
            btnActualizarEst.setEnabled(true);
        }
        else{
            btnActualizarEst.setEnabled(false);
        }
        
    }
    
    private void puedeActualizarExpediente(){
        if(btnActualizarEst.isEnabled()){
            if(filtrosEstudianteAct()){
                actualizarExpediente();
            }
        }
    }
    
    private boolean maxLargoNombreEstAct(){
        if(campoNombreEstAct.getText().length()<31){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean minLargoNombreEstAct(){
        if(campoNombreEstAct.getText().length()>1){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean maxLargoApellido1EstAct(){
        if(campoApellido1EstAct.getText().length()<31){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean minLargoApellido1EstAct(){
        if(campoApellido1EstAct.getText().length()>1){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean maxLargoApellido2EstAct(){
        if(campoApellido2EstAct.getText().length()<31){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean minLargoApellido2EstAct(){
        if(campoApellido2EstAct.getText().length()>1){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean maxLargoEmail1EstAct(){
        if(campoEmailEst1Act.getText().length()<65){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean maxLargoEmail2EstAct(){
        if(campoEmailEst2Act.getText().length()<65){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean largoTel1EstAct(){
        if(campoTel1EstAct.getText().length()==8){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean largoTel2EstAct(){
        if(campoTel2EstAct.getText().length()==8){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean maxLargoNombreRespAct(){
        if(campoNombreRespAct.getText().length()<31){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean minLargoNombreRespAct(){
        if(campoNombreRespAct.getText().length()>1){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean maxLargoApellido1RespAct(){
        if(campoApellido1RespAct.getText().length()<31){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean minLargoApellido1RespAct(){
        if(campoApellido1RespAct.getText().length()>1){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean maxLargoApellido2RespAct(){
        if(campoApellido2RespAct.getText().length()<31){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean minLargoApellido2RespAct(){
        if(campoApellido2RespAct.getText().length()>1){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean maxLargoCedulaRespAct(){
        if(campoCedulaRespAct.getText().length()<13){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean minLargoCedulaRespAct(){
        if(campoCedulaRespAct.getText().length()>8){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean maxLargoEmailRespAct(){
        if(campoEmailRespAct.getText().length()<65){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean largoTelRespAct(){
        if(campoTelRespAct.getText().length()==8){
            return true;
        }
        else{
            return false;
        }
    }
    
    private boolean filtrosEstudianteAct(){
        int filtro2,filtro3,filtro4,filtro5,filtro6,filtro7,filtro8,filtro9,filtro10;
        filtro2=filtro3=filtro4=filtro5=filtro6=filtro7=filtro8=filtro9=filtro10=0;
        
        if(!minLargoNombreEstAct()||!maxLargoNombreEstAct()){
            filtro2=1;
        }
        if(!minLargoApellido1EstAct()||!maxLargoApellido1EstAct()){
            filtro3=1;
        }
        if(!campoApellido2EstAct.getText().equals("")){
            if(!minLargoApellido2EstAct()||!maxLargoApellido2EstAct()){
                filtro4=1;                         
            }
        }
        if(!maxLargoEmail1EstAct()){
            filtro5=1;
        }
        if(!validarCorreo(campoEmailEst1Act.getText())){
            filtro6=1;
        }
        if(!campoEmailEst2Act.getText().equals("")){
            if(!maxLargoEmail2EstAct()){
                filtro7=1;                         
            }
            if(!validarCorreo(campoEmailEst2Act.getText())){
                filtro8=1;
            }
        }
        if(!largoTel1EstAct()){
            filtro9=1;
        }
        if(!campoTel2EstAct.getText().equals("")){
            if(!largoTel2EstAct()){
                filtro10=1;
            }
        }
        
        if(validarMenorEdad(campoFechaNacEstAct)){//menor de edad
            int filtro11,filtro12,filtro13,filtro14,filtro15,filtro16,filtro17;
            filtro11=filtro12=filtro13=filtro14=filtro15=filtro16=filtro17=0;
        
            if(!minLargoCedulaRespAct()||!maxLargoCedulaRespAct()){
                filtro11=1;
            }
            if(!minLargoNombreRespAct()||!maxLargoNombreRespAct()){
                filtro12=1;
            }
            if(!minLargoApellido1RespAct()||!maxLargoApellido1RespAct()){
                filtro13=1;
            }
            if(!campoApellido2RespAct.getText().equals("")){
                if(!minLargoApellido2RespAct()||!maxLargoApellido2RespAct()){
                    filtro14=1;                         
                }
            }
            if(!maxLargoEmailRespAct()){
                filtro15=1;
            }
            if(!validarCorreo(campoEmailRespAct.getText())){
                filtro16=1;
            }
            if(!largoTelRespAct()){
                filtro17=1;
            }
            return filtroAvisosEstudianteMenorAct(filtro2,filtro3,filtro4,filtro5,filtro6,filtro7,filtro8,filtro9,filtro10,filtro11,filtro12,filtro13,filtro14,filtro15,filtro16,filtro17);
        }
        else{//mayor de edad
            //System.out.print(filtro1+"\n"+filtro2+"\n"+filtro3+"\n"+filtro4+"\n"+filtro5+"\n"+filtro6+"\n"+filtro7+"\n"+filtro8+"\n"+filtro9+"\n"+filtro10);
            return filtroAvisosEstudianteMayorAct(filtro2,filtro3,filtro4,filtro5,filtro6,filtro7,filtro8,filtro9,filtro10);
        }
    }
    
    private boolean filtroAvisosEstudianteMayorAct(int filtro2, int filtro3, int filtro4, int filtro5, int filtro6, int filtro7, int filtro8, int filtro9, int filtro10){
        String aviso2,aviso3,aviso4,aviso5,aviso6,aviso7,aviso8,aviso9,aviso10;
        aviso2=aviso3=aviso4=aviso5=aviso6=aviso7=aviso8=aviso9=aviso10="";
        
        if(filtro2==1){
            aviso2="\nEl nombre del estudiante no puede tener más de 30 y no menos de 1 caracter";
        }
        if(filtro3==1){
            aviso3="\nEl primer apellido del estudiante no puede tener más de 30 y no menos de 1 caracter";
        }
        if(filtro4==1){
            aviso4="\nEl segundo apellido del estudiante no puede tener más de 30 y no menos de 1 caracter";
        }
        if(filtro5==1){
            aviso5="\nEl primer correo eletrónico del estudiante no puede tener más de 64 caracteres";
        }
        if(filtro6==1){
            aviso6="\nEl formato del primer correo del estudiante debe tener el siguiente formato: inicio@primerDominio.segundoDominio"
                    + "\nEjemplo: are123(inicio)@gmail(primer dominio).com(segundo dominio)"
                    + "\nEl inicio debe tener mínimo un caracter al igual que el primer dominio. El segundo dominio un mínimo de dos.";
        }
        if(filtro7==1){
            aviso7="\nEl segundo correo eletrónico del estudiante no puede tener más de 64 caracteres";
        }
        if(filtro8==1){
            aviso8="\nEl formato del segundo correo del estudiante debe tener el siguiente formato: inicio@primerDominio.segundoDominio"
                    + "\nEjemplo: are123(inicio)@gmail(primer dominio).com(segundo dominio)"
                    + "\nEl inicio debe tener mínimo un caracter al igual que el primer dominio. El segundo dominio un mínimo de dos.";
        }
        if(filtro9==1){
            aviso9="\nEl primer teléfono del estudiante debe ser de 8 caracteres";
        }
        if(filtro10==1){
            aviso10="\nEl segundo teléfono del estudiante debe ser de 8 caracteres";
        }
        
        subrayadoErrorEstudianteMayorAct(filtro2,filtro3,filtro4,filtro5,filtro6,filtro7,filtro8,filtro9,filtro10);
        
        if(aviso2.equals("")&&aviso3.equals("")&&aviso4.equals("")&&aviso5.equals("")&&aviso6.equals("")&&aviso7.equals("")&&aviso8.equals("")&&aviso9.equals("")&&aviso10.equals("")){
            return true;
        }
        else{
            JOptionPane.showMessageDialog(null, aviso2+aviso3+aviso4+aviso5+aviso6+aviso7+aviso8+aviso9+aviso10, "Error", JOptionPane.ERROR_MESSAGE);
            return false;
        }
    }
    
    private boolean filtroAvisosEstudianteMenorAct(int filtro2, int filtro3, int filtro4, int filtro5, int filtro6, int filtro7, int filtro8, int filtro9, int filtro10, int filtro11, int filtro12, int filtro13, int filtro14, int filtro15, int filtro16, int filtro17){
        String aviso2,aviso3,aviso4,aviso5,aviso6,aviso7,aviso8,aviso9,aviso10,aviso11,aviso12,aviso13,aviso14,aviso15,aviso16,aviso17;
        aviso2=aviso3=aviso4=aviso5=aviso6=aviso7=aviso8=aviso9=aviso10=aviso11=aviso12=aviso13=aviso14=aviso15=aviso16=aviso17="";
        
        if(filtro2==1){
            aviso2="\nEl nombre del estudiante no puede tener más de 30 y no menos de 1 caracter";
        }
        if(filtro3==1){
            aviso3="\nEl primer apellido del estudiante no puede tener más de 30 y no menos de 1 caracter";
        }
        if(filtro4==1){
            aviso4="\nEl segundo apellido del estudiante no puede tener más de 30 y no menos de 1 caracter";
        }
        if(filtro5==1){
            aviso5="\nEl primer correo eletrónico del estudiante no puede tener más de 64 caracteres";
        }
        if(filtro6==1){
            aviso6="\nEl formato del primer correo del estudiante debe tener el siguiente formato: inicio@primerDominio.segundoDominio"
                    + "\nEjemplo: are123(inicio)@gmail(primer dominio).com(segundo dominio)"
                    + "\nEl inicio debe tener mínimo un caracter al igual que el primer dominio. El segundo dominio un mínimo de dos.";
        }
        if(filtro7==1){
            aviso7="\nEl segundo correo eletrónico del estudiante no puede tener más de 64 caracteres";
        }
        if(filtro8==1){
            aviso8="\nEl formato del segundo correo del estudiante debe tener el siguiente formato: inicio@primerDominio.segundoDominio"
                    + "\nEjemplo: are123(inicio)@gmail(primer dominio).com(segundo dominio)"
                    + "\nEl inicio debe tener mínimo un caracter al igual que el primer dominio. El segundo dominio un mínimo de dos.";
        }
        if(filtro9==1){
            aviso9="\nEl primer teléfono del estudiante debe ser de 8 caracteres";
        }
        if(filtro10==1){
            aviso10="\nEl segundo teléfono del estudiante debe ser de 8 caracteres";
        }
        if(filtro11==1){
            aviso11="\nLa cédula del responsable del estudiante no puede tener más de 12 y no menos de 9 caracteres";
        }
        if(filtro12==1){
            aviso12="\nEl nombre del responsable del estudiante no puede tener más de 30 y no menos de 1 caracter";
        }
        if(filtro13==1){
            aviso13="\nEl primer apellido del responsable del estudiante no puede tener más de 30 y no menos de 1 caracter";
        }
        if(filtro14==1){
            aviso14="\nEl segundo apellido del responsable del estudiante no puede tener más de 30 y no menos de 1 caracter";
        }     
        if(filtro15==1){
            aviso15="\nEl correo eletrónico del responsable del estudiante no puede tener más de 64 caracteres";
        }
        if(filtro16==1){
            aviso16="\nEl formato del correo del responsable del estudiante debe tener el siguiente formato: inicio@primerDominio.segundoDominio"
                    + "\nEjemplo: are123(inicio)@gmail(primer dominio).com(segundo dominio)"
                    + "\nEl inicio debe tener mínimo un caracter al igual que el primer dominio. El segundo dominio un mínimo de dos.";
        }
        if(filtro17==1){
            aviso17="\nEl teléfono del responsable del estudiante debe ser de 8 caracteres";
        }
        
        subrayadoErrorEstudianteMenorAct(filtro2,filtro3,filtro4,filtro5,filtro6,filtro7,filtro8,filtro9,filtro10,filtro11,filtro12,filtro13,filtro14,filtro15,filtro16,filtro17);
        
        if(aviso2.equals("")&&aviso3.equals("")&&aviso4.equals("")&&aviso5.equals("")&&aviso6.equals("")&&aviso7.equals("")&&aviso8.equals("")&&aviso9.equals("")&&aviso10.equals("")&&aviso11.equals("")&&aviso12.equals("")&&aviso13.equals("")&&aviso14.equals("")&&aviso15.equals("")&&aviso16.equals("")&&aviso17.equals("")){
            return true;
        }
        else{
            JOptionPane.showMessageDialog(null, aviso2+aviso3+aviso4+aviso5+aviso6+aviso7+aviso8+aviso9+aviso10+aviso11+aviso12+aviso13+aviso14+aviso15+aviso16+aviso17, "Error", JOptionPane.ERROR_MESSAGE);
            return false;
        }
    }
    
    private void subrayadoErrorEstudianteMayorAct(int filtro2, int filtro3, int filtro4, int filtro5, int filtro6, int filtro7, int filtro8, int filtro9, int filtro10){
        
        if(filtro2==1){
            campoNombreEstAct.setBackground(new Color(255,51,51));
            campoNombreEstAct.setToolTipText("Revisar nombre de estudiante");
        }
        if(filtro2==0){
            campoNombreEstAct.setBackground(Color.white);
            campoNombreEstAct.setToolTipText(null);
        }
        if(filtro3==1){
            campoApellido1EstAct.setBackground(new Color(255,51,51));
            campoApellido1EstAct.setToolTipText("Revisar apellido de estudiante");
        }
        if(filtro3==0){
            campoApellido1EstAct.setBackground(Color.white);
            campoApellido1EstAct.setToolTipText(null);
        }
        if(filtro4==1){
            campoApellido2EstAct.setBackground(new Color(255,51,51));
            campoApellido2EstAct.setToolTipText("Revisar apellido de estudiante");
        }
        if(filtro4==0){
            campoApellido2EstAct.setBackground(Color.white);
            campoApellido2EstAct.setToolTipText(null);
        }
        if(filtro5==1||filtro6==1){
            campoEmailEst1Act.setBackground(new Color(255,51,51));
            campoEmailEst1Act.setToolTipText("Revisar correo de estudiante");
        }
        if(filtro5==0&&filtro6==0){
            campoEmailEst1Act.setBackground(Color.white);
            campoEmailEst1Act.setToolTipText(null);
        }
        if(filtro7==1|filtro8==1){
            campoEmailEst2Act.setBackground(new Color(255,51,51));
            campoEmailEst2Act.setToolTipText("Revisar correo de estudiante");
        }
        if(filtro7==0&&filtro8==0){
            campoEmailEst2Act.setBackground(Color.white);
            campoEmailEst2Act.setToolTipText(null);
        }
        if(filtro9==1){
            campoTel1EstAct.setBackground(new Color(255,51,51));
            campoTel1EstAct.setToolTipText("Revisar teléfono de estudiante");
        }
        if(filtro9==0){
            campoTel1EstAct.setBackground(Color.white);
            campoTel1EstAct.setToolTipText(null);
        }
        if(filtro10==1){
            campoTel2EstAct.setBackground(new Color(255,51,51));
            campoTel2EstAct.setToolTipText("Revisar teléfono de estudiante");
        }
        if(filtro10==0){
            campoTel2EstAct.setBackground(Color.white);
            campoTel2EstAct.setToolTipText(null);
        }
    }
    
    private void subrayadoErrorEstudianteMenorAct(int filtro2, int filtro3, int filtro4, int filtro5, int filtro6, int filtro7, int filtro8, int filtro9, int filtro10, int filtro11, int filtro12, int filtro13, int filtro14, int filtro15, int filtro16, int filtro17){
        
        if(filtro2==1){
            campoNombreEstAct.setBackground(new Color(255,51,51));
            campoNombreEstAct.setToolTipText("Revisar nombre de estudiante");
        }
        if(filtro2==0){
            campoNombreEstAct.setBackground(Color.white);
            campoNombreEstAct.setToolTipText(null);
        }
        if(filtro3==1){
            campoApellido1EstAct.setBackground(new Color(255,51,51));
            campoApellido1EstAct.setToolTipText("Revisar apellido de estudiante");
        }
        if(filtro3==0){
            campoApellido1EstAct.setBackground(Color.white);
            campoApellido1EstAct.setToolTipText(null);
        } 
        if(filtro4==1){
            campoApellido2EstAct.setBackground(new Color(255,51,51));
            campoApellido2EstAct.setToolTipText("Revisar apellido de estudiante");
        }
        if(filtro4==0){
            campoApellido2EstAct.setBackground(Color.white);
            campoApellido2EstAct.setToolTipText(null);
        }
        if(filtro5==1||filtro6==1){
            campoEmailEst1Act.setBackground(new Color(255,51,51));
            campoEmailEst1Act.setToolTipText("Revisar correo de estudiante");
        }
        if(filtro5==0&&filtro6==0){
            campoEmailEst1Act.setBackground(Color.white);
            campoEmailEst1Act.setToolTipText(null);
        }
        if(filtro7==1|filtro8==1){
            campoEmailEst2Act.setBackground(new Color(255,51,51));
            campoEmailEst2Act.setToolTipText("Revisar correo de estudiante");
        }
        if(filtro7==0&&filtro8==0){
            campoEmailEst2Act.setBackground(Color.white);
            campoEmailEst2Act.setToolTipText(null);
        }
        if(filtro9==1){
            campoTel1EstAct.setBackground(new Color(255,51,51));
            campoTel1EstAct.setToolTipText("Revisar teléfono de estudiante");
        }
        if(filtro9==0){
            campoTel1EstAct.setBackground(Color.white);
            campoTel1EstAct.setToolTipText(null);
        }
        if(filtro10==1){
            campoTel2EstAct.setBackground(new Color(255,51,51));
            campoTel2EstAct.setToolTipText("Revisar teléfono de estudiante");
        }
        if(filtro10==0){
            campoTel2EstAct.setBackground(Color.white);
            campoTel2EstAct.setToolTipText(null);
        }
        if(filtro11==1){
            campoCedulaRespAct.setBackground(new Color(255,51,51));
            campoCedulaRespAct.setToolTipText("Revisar cédula del responsable");
        }
        if(filtro11==0){
            campoCedulaRespAct.setBackground(Color.white);
            campoCedulaRespAct.setToolTipText(null);
        }
        if(filtro12==1){
            campoNombreRespAct.setBackground(new Color(255,51,51));
            campoNombreRespAct.setToolTipText("Revisar nombre del responsable");
        }
        if(filtro12==0){
            campoNombreRespAct.setBackground(Color.white);
            campoNombreRespAct.setToolTipText(null);
        }
        if(filtro13==1){
            campoApellido1RespAct.setBackground(new Color(255,51,51));
            campoApellido1RespAct.setToolTipText("Revisar apellido del responsable");
        }
        if(filtro13==0){
            campoApellido1RespAct.setBackground(Color.white);
            campoApellido1RespAct.setToolTipText(null);
        }
        if(filtro14==1){
            campoApellido2RespAct.setBackground(new Color(255,51,51));
            campoApellido2RespAct.setToolTipText("Revisar apellido del responsable");
        }
        if(filtro14==0){
            campoApellido2RespAct.setBackground(Color.white);
            campoApellido2RespAct.setToolTipText(null);
        }
        if(filtro15==1||filtro16==1){
            campoEmailRespAct.setBackground(new Color(255,51,51));
            campoEmailRespAct.setToolTipText("Revisar correo del responsable");
        }
        if(filtro15==0&&filtro16==0){
            campoEmailRespAct.setBackground(Color.white);
            campoEmailRespAct.setToolTipText(null);
        }
        if(filtro17==1){
            campoTelRespAct.setBackground(new Color(255,51,51));
            campoTelRespAct.setToolTipText("Revisar teléfono del responsable");
        }
        if(filtro17==0){
            campoTelRespAct.setBackground(Color.white);
            campoTelRespAct.setToolTipText(null);
        }
    }
    
    private void initComponents4(){
               
        scrollEstudiantesEliminar.getViewport().setBackground(Color.WHITE);
        tablaEstudiantesEliminar.getColumnModel().getColumn(0).setMaxWidth(55);
        tablaEstudiantesEliminar.getColumnModel().getColumn(0).setMinWidth(55);
        tablaEstudiantesEliminar.getColumnModel().getColumn(1).setMaxWidth(45);
        tablaEstudiantesEliminar.getColumnModel().getColumn(1).setMinWidth(45);
        tablaEstudiantesEliminar.getColumnModel().getColumn(2).setMaxWidth(115);
        tablaEstudiantesEliminar.getColumnModel().getColumn(2).setMinWidth(115);
        tablaEstudiantesEliminar.getColumnModel().getColumn(3).setMaxWidth(65);
        tablaEstudiantesEliminar.getColumnModel().getColumn(3).setMinWidth(65);
        tablaEstudiantesEliminar.getColumnModel().getColumn(4).setMaxWidth(115);
        tablaEstudiantesEliminar.getColumnModel().getColumn(4).setMinWidth(115);
        tablaEstudiantesEliminar.getColumnModel().getColumn(5).setMaxWidth(115);
        tablaEstudiantesEliminar.getColumnModel().getColumn(5).setMinWidth(115);
        tablaEstudiantesEliminar.getColumnModel().getColumn(6).setMaxWidth(45);
        tablaEstudiantesEliminar.getColumnModel().getColumn(6).setMinWidth(45);
        tablaEstudiantesEliminar.getColumnModel().getColumn(7).setMaxWidth(45);
        tablaEstudiantesEliminar.getColumnModel().getColumn(7).setMinWidth(45);
        tablaEstudiantesEliminar.getColumnModel().getColumn(8).setMaxWidth(45);
        tablaEstudiantesEliminar.getColumnModel().getColumn(8).setMinWidth(45);
        tablaEstudiantesEliminar.getColumnModel().getColumn(9).setMaxWidth(115);
        tablaEstudiantesEliminar.getColumnModel().getColumn(9).setMinWidth(115);
        tablaEstudiantesEliminar.getColumnModel().getColumn(10).setMaxWidth(65);
        tablaEstudiantesEliminar.getColumnModel().getColumn(10).setMinWidth(65);
        tablaEstudiantesEliminar.getColumnModel().getColumn(11).setMaxWidth(115);
        tablaEstudiantesEliminar.getColumnModel().getColumn(11).setMinWidth(115);
        tablaEstudiantesEliminar.getColumnModel().getColumn(12).setMaxWidth(45);
        tablaEstudiantesEliminar.getColumnModel().getColumn(12).setMinWidth(45);
        
        tablaEstudiantesEliminar.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                eliminarExpediente();
            }
        });
    }
    
    private void limpiarPanelEliminarExpediente(){
        campoBusquedaEstEliminar.setText("");
        tablaEstudiantesEliminar.clearSelection();
        eliminarEstudianteSorter();
        campoBusquedaEstEliminar.requestFocus();
    }
    
    private void eliminarEstudianteSorter(){
        TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(tablaEstudiantesEliminar.getModel());
        tablaEstudiantesEliminar.setRowSorter(sorter);
        if(campoBusquedaEstEliminar.getText().isEmpty()){
            sorter.setRowFilter(null);
        }    
        else{
            try{
                sorter.setRowFilter(RowFilter.regexFilter(campoBusquedaEstEliminar.getText()));
            }catch (PatternSyntaxException pse) {
                System.err.println("Bad regex pattern");
            }
        }
    }
    
    private void initComponents5(){
               
        scrollEstudiantesMostrar.getViewport().setBackground(Color.WHITE);
        tablaEstudiantesMostrar.getColumnModel().getColumn(0).setMaxWidth(55);
        tablaEstudiantesMostrar.getColumnModel().getColumn(0).setMinWidth(55);
        tablaEstudiantesMostrar.getColumnModel().getColumn(1).setMaxWidth(45);
        tablaEstudiantesMostrar.getColumnModel().getColumn(1).setMinWidth(45);
        tablaEstudiantesMostrar.getColumnModel().getColumn(2).setMaxWidth(115);
        tablaEstudiantesMostrar.getColumnModel().getColumn(2).setMinWidth(115);
        tablaEstudiantesMostrar.getColumnModel().getColumn(3).setMaxWidth(65);
        tablaEstudiantesMostrar.getColumnModel().getColumn(3).setMinWidth(65);
        tablaEstudiantesMostrar.getColumnModel().getColumn(4).setMaxWidth(115);
        tablaEstudiantesMostrar.getColumnModel().getColumn(4).setMinWidth(115);
        tablaEstudiantesMostrar.getColumnModel().getColumn(5).setMaxWidth(115);
        tablaEstudiantesMostrar.getColumnModel().getColumn(5).setMinWidth(115);
        tablaEstudiantesMostrar.getColumnModel().getColumn(6).setMaxWidth(45);
        tablaEstudiantesMostrar.getColumnModel().getColumn(6).setMinWidth(45);
        tablaEstudiantesMostrar.getColumnModel().getColumn(7).setMaxWidth(45);
        tablaEstudiantesMostrar.getColumnModel().getColumn(7).setMinWidth(45);
        tablaEstudiantesMostrar.getColumnModel().getColumn(8).setMaxWidth(45);
        tablaEstudiantesMostrar.getColumnModel().getColumn(8).setMinWidth(45);
        tablaEstudiantesMostrar.getColumnModel().getColumn(9).setMaxWidth(115);
        tablaEstudiantesMostrar.getColumnModel().getColumn(9).setMinWidth(115);
        tablaEstudiantesMostrar.getColumnModel().getColumn(10).setMaxWidth(65);
        tablaEstudiantesMostrar.getColumnModel().getColumn(10).setMinWidth(65);
        tablaEstudiantesMostrar.getColumnModel().getColumn(11).setMaxWidth(115);
        tablaEstudiantesMostrar.getColumnModel().getColumn(11).setMinWidth(115);
        tablaEstudiantesMostrar.getColumnModel().getColumn(12).setMaxWidth(45);
        tablaEstudiantesMostrar.getColumnModel().getColumn(12).setMinWidth(45);
        
    }
    
    private void limpiarPanelMostrarExpediente(){
        campoBusquedaEstMostrar.setText("");
        tablaEstudiantesMostrar.clearSelection();
        mostrarEstudianteSorter();
        campoBusquedaEstMostrar.requestFocus(); 
    }
    
    private void mostrarEstudianteSorter(){
        TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(tablaEstudiantesMostrar.getModel());
        tablaEstudiantesMostrar.setRowSorter(sorter);
        if(campoBusquedaEstMostrar.getText().isEmpty()){
            sorter.setRowFilter(null);
        }    
        else{
            try{
                sorter.setRowFilter(RowFilter.regexFilter(campoBusquedaEstMostrar.getText()));
            }catch (PatternSyntaxException pse) {
                System.err.println("Bad regex pattern");
            }
        }
    }
    
       
    
    private void eliminarExpediente(){
        
        int confirmado = JOptionPane.showOptionDialog(
            null,"Confirmar borrado del expediente del estudiante: "+((String)tablaEstudiantesEliminar.getValueAt(tablaEstudiantesEliminar.getSelectedRow(), 1)).replaceAll("\\s+$","")+"-"+((String)tablaEstudiantesEliminar.getValueAt(tablaEstudiantesEliminar.getSelectedRow(), 2)).replaceAll("\\s+$","")+"\n \nConfirmación requerida", "Confirmación requerida",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE,
            null,    // null para icono por defecto.
            new Object[] { "Correcto", "Cancelar"},   // null para YES, NO y CANCEL
            null);
                
        if(confirmado==0){
        
            Connection conexion=null;
            Statement sentencia=null;
            ResultSet resultado=null;
        
            try {
                Class.forName("org.postgresql.Driver");
            }catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
            try{
                conexion = DriverManager.getConnection(cadenaConexion);
                sentencia = conexion.createStatement();
          
                String consultaSQL = "delete from estudiante where cedula='"+tablaEstudiantesEliminar.getValueAt(tablaEstudiantesEliminar.getSelectedRow(), 1) +"'";
                resultado = sentencia.executeQuery(consultaSQL);

            } catch (SQLException e) {
                if(e.getSQLState().equals("02000")){ //no_data , un delete no devuelve nada
                    ((DefaultTableModel)tablaEstudiantesEliminar.getModel()).removeRow(tablaEstudiantesEliminar.convertRowIndexToModel(tablaEstudiantesEliminar.getSelectedRow()));
                    JOptionPane.showMessageDialog(null,"\n ¡Expediente de estudiante eliminado con éxito!","Éxito",JOptionPane.INFORMATION_MESSAGE);
                    limpiarPanelEliminarExpediente();
                }
                else{       
                    JOptionPane.showMessageDialog(null, "\n Error en la base de datos \nImposible borrar expediente de estudiante", "Error", JOptionPane.ERROR_MESSAGE);
                    e.printStackTrace();
                    conexion = null;
                }
            }
            finally {
                if (resultado != null) {
                    try {
                        resultado.close();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
                if (sentencia != null) {
                    try {
                        sentencia.close();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
                if (conexion != null) {
                    try {
                        conexion.close();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
  
    private void cargarEstudiantes(JTable tabla){
        Connection conexion=null;
        Statement sentencia=null;
        ResultSet resultado=null;
        Object[][] estudiantes;
        
        try {
            Class.forName("org.postgresql.Driver");
        }catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try{
            conexion = DriverManager.getConnection(cadenaConexion);
            sentencia = conexion.createStatement();
            String consultaSQL = "select cedula,nombre,apellido1,apellido2,fecha_nac,activo,cedula_resp,nombre_resp,apellido1_resp,apellido2_resp,fecha_nac_resp,email1_est,email2_est,email_resp,tel1_est,tel2_est,tel_resp from estudiante";
            resultado = sentencia.executeQuery(consultaSQL);
            
            int sizeEstudiantes=0;
            while (resultado.next()) {
                sizeEstudiantes++;
            }
            
            estudiantes = new Object[sizeEstudiantes][13];
            resultado = sentencia.executeQuery(consultaSQL);
            int i=0;
            while (resultado.next()) {
                if(resultado.getBoolean("activo")){
                    estudiantes[i][0]="Activo";
                }
                else{
                    estudiantes[i][0]="Inactivo";
                }
                estudiantes[i][1]=resultado.getString("cedula").replaceAll("\\s+$","");
                String student=resultado.getString("nombre").replaceAll("\\s+$","")+" "+resultado.getString("apellido1").replaceAll("\\s+$","");
                if(resultado.getString("apellido2")!=null){
                    student=student+" "+resultado.getString("apellido2").replaceAll("\\s+$","");
                }
                estudiantes[i][2]=student;
                estudiantes[i][3]=resultado.getString("fecha_nac");
                estudiantes[i][4]=resultado.getString("email1_est").replaceAll("\\s+$","");
                if(resultado.getString("email2_est")!=null){
                    estudiantes[i][5]=resultado.getString("email2_est");
                }
                estudiantes[i][6]=resultado.getInt("tel1_est");
                if(resultado.getInt("tel2_est")!=0){
                    estudiantes[i][7]=resultado.getInt("tel2_est");
                }
                if(resultado.getString("cedula_resp")!=null){
                    estudiantes[i][8]=resultado.getString("cedula_resp").replaceAll("\\s+$","");
                }
                
                String resp="";
                if(resultado.getString("nombre_resp")!=null){
                    resp=resp+resultado.getString("nombre_resp").replaceAll("\\s+$","");
                }
                if(resultado.getString("apellido1_resp")!=null){
                    resp=resp+" "+resultado.getString("apellido1_resp").replaceAll("\\s+$","");
                }
                if(resultado.getString("apellido2_resp")!=null){
                    resp=resp+" "+resultado.getString("apellido2_resp").replaceAll("\\s+$","");
                }
                estudiantes[i][9]=resp;
                estudiantes[i][10]=resultado.getString("fecha_nac_resp");
                if(resultado.getString("email_resp")!=null){
                    estudiantes[i][11]=resultado.getString("email_resp");
                }
                if(resultado.getInt("tel_resp")!=0){
                    estudiantes[i][12]=resultado.getInt("tel_resp");
                }
                i++;
            }
                
            tabla.setModel(new DefaultTableModel(estudiantes,
                    
                    new String[]{"Estado","Cédula del estudiante","Estudiante","Fecha de nacimiento","Correo #1","Correo #2","Teléfono #1","Teléfono #2","Cédula del responsable","Responsable","Fecha de nacimiento","Correo","Teléfono"}
            
                    
                    ){

                boolean[] editColumn = new boolean[]{false,false,false,false,false,false,false,false,false,false,false,false,false};
                
                @Override
                public boolean isCellEditable(int row, int column) {
                    return editColumn[column];
                }
                
            });
            
        }catch (SQLException e) {   
            JOptionPane.showMessageDialog(null, "\nImposible cargar datos de estudiantes\nError en la base de datos", "Error", JOptionPane.ERROR_MESSAGE);
            e.printStackTrace();
            conexion = null;
            
        }
        finally {
            if (resultado != null) {
                try {
                resultado.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (sentencia != null) {
                try {
                sentencia.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (conexion != null) {
                try {
                conexion.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
     
        
        tabla.getColumnModel().getColumn(0).setMaxWidth(55);
        tabla.getColumnModel().getColumn(0).setMinWidth(55);
        tabla.getColumnModel().getColumn(1).setMaxWidth(115);
        tabla.getColumnModel().getColumn(1).setMinWidth(115);
        tabla.getColumnModel().getColumn(2).setMaxWidth(300);
        tabla.getColumnModel().getColumn(2).setMinWidth(300);
        tabla.getColumnModel().getColumn(3).setMaxWidth(110);
        tabla.getColumnModel().getColumn(3).setMinWidth(110);
        tabla.getColumnModel().getColumn(4).setMaxWidth(390);
        tabla.getColumnModel().getColumn(4).setMinWidth(390);
        tabla.getColumnModel().getColumn(5).setMaxWidth(390);
        tabla.getColumnModel().getColumn(5).setMinWidth(390);
        tabla.getColumnModel().getColumn(6).setMaxWidth(70);
        tabla.getColumnModel().getColumn(6).setMinWidth(70);
        tabla.getColumnModel().getColumn(7).setMaxWidth(70);
        tabla.getColumnModel().getColumn(7).setMinWidth(70);
        tabla.getColumnModel().getColumn(8).setMaxWidth(122);
        tabla.getColumnModel().getColumn(8).setMinWidth(122);
        tabla.getColumnModel().getColumn(9).setMaxWidth(300);
        tabla.getColumnModel().getColumn(9).setMinWidth(300);
        tabla.getColumnModel().getColumn(10).setMaxWidth(110);
        tabla.getColumnModel().getColumn(10).setMinWidth(110);
        tabla.getColumnModel().getColumn(11).setMaxWidth(390);
        tabla.getColumnModel().getColumn(11).setMinWidth(390);
        tabla.getColumnModel().getColumn(12).setMaxWidth(60);
        tabla.getColumnModel().getColumn(12).setMinWidth(60);
        
    } 
    
    
    private void initComponents6(){
        scrollEstudiantesAsignar.getViewport().setBackground(Color.WHITE);
        scrollPromocionesAsignar.getViewport().setBackground(Color.WHITE);
        campoBusquedaEstAsignar.requestFocus();
        
        ListSelectionModel listSelectionModel1 = tablaEstudiantesAsignar.getSelectionModel();
        listSelectionModel1.addListSelectionListener(new ListSelectionListener() {
            @Override
            public void valueChanged(ListSelectionEvent e) { 
                ListSelectionModel lsm = (ListSelectionModel)e.getSource();
                if(!lsm.isSelectionEmpty()){
                    cargarPromocionesAsignacion();
                    campoBusquedaPromocionAsignar.requestFocus();
                    habilitarCancelarAsignacion();
                }
                else{
                    limpiarTablaPromocionesAsignar();
                    campoBusquedaPromocionAsignar.setText("");
                    deshabilitarCancelarAsignacion();
                    deshabilitarRegistrarAsignacion();
                }
            }
        });    
        
        ListSelectionModel listSelectionModel2 = tablaPromocionesAsignar.getSelectionModel();
        listSelectionModel2.addListSelectionListener(new ListSelectionListener() {
            @Override
            public void valueChanged(ListSelectionEvent e) { 
                ListSelectionModel lsm = (ListSelectionModel)e.getSource();
                if(!lsm.isSelectionEmpty()){
                    campoBusquedaPromocionAsignar.requestFocus();
                    habilitarRegistrarAsignacion();
                    habilitarCancelarAsignacion();
                }
                else{
                    deshabilitarRegistrarAsignacion();
                    deshabilitarCancelarAsignacion();
                }
            }
        }); 
        
        JSpinner spinner = (JSpinner)campoAnioPromocion.getSpinner();
        ((javax.swing.JTextField)spinner.getEditor()).setEditable(false);
        tablaEstudiantesAsignar.getColumnModel().getColumn(0).setMaxWidth(95);
        tablaEstudiantesAsignar.getColumnModel().getColumn(0).setMinWidth(95);
        tablaEstudiantesAsignar.getColumnModel().getColumn(1).setMaxWidth(345);
        tablaEstudiantesAsignar.getColumnModel().getColumn(1).setMinWidth(345);
        tablaPromocionesAsignar.getColumnModel().getColumn(0).setMaxWidth(45);
        tablaPromocionesAsignar.getColumnModel().getColumn(0).setMinWidth(45);
        tablaPromocionesAsignar.getColumnModel().getColumn(1).setMaxWidth(350);
        tablaPromocionesAsignar.getColumnModel().getColumn(1).setMinWidth(350);
        tablaPromocionesAsignar.getColumnModel().getColumn(2).setMaxWidth(45);
        tablaPromocionesAsignar.getColumnModel().getColumn(2).setMinWidth(45);
    }
    
    private void habilitarCancelarAsignacion(){
        btnCancelarAsignacion.setEnabled(true);
    }
        
    private void habilitarRegistrarAsignacion(){
        btnRegistrarAsignacion.setEnabled(true);
    }
    
    private void deshabilitarRegistrarAsignacion(){
        btnRegistrarAsignacion.setEnabled(false);
    }
    
    private void deshabilitarCancelarAsignacion(){
        if(tablaEstudiantesAsignar.getSelectedRow()==-1&&tablaPromocionesAsignar.getSelectedRow()==-1){
            btnCancelarAsignacion.setEnabled(false);
        }
    }
    
    private void puedeAsignar(){
        if(btnRegistrarAsignacion.isEnabled()){
            int confirmado = JOptionPane.showOptionDialog(
                null,"Confirmar asignación de la promoción: "+tablaPromocionesAsignar.getValueAt(tablaPromocionesAsignar.getSelectedRow(), 0)+"-"+((String)tablaPromocionesAsignar.getValueAt(tablaPromocionesAsignar.getSelectedRow(), 1)).replaceAll("\\s+$","")+"\n"
                    + "\nal estudiante: "+tablaEstudiantesAsignar.getValueAt(tablaEstudiantesAsignar.getSelectedRow(), 0)+"-"+((String)tablaEstudiantesAsignar.getValueAt(tablaEstudiantesAsignar.getSelectedRow(), 1)).replaceAll("\\s+$","")+"\n\nConfirmación requerida", "Confirmación requerida",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE,
                null,    // null para icono por defecto.
                new Object[] { "Correcto", "Cancelar"},   // null para YES, NO y CANCEL
                null);
                
            if(confirmado==0){
                Connection conexion=null;
                Statement sentencia=null;
                ResultSet resultado=null;
        
                try {
                    Class.forName("org.postgresql.Driver");
                }catch (ClassNotFoundException e) {
                    e.printStackTrace();
                }
                try{
                    conexion = DriverManager.getConnection(cadenaConexion);
                    sentencia = conexion.createStatement();
          
                    String consultaSQL = "insert into promocion_estudiantil (promocion,estudiante,anio,mes) VALUES ("+tablaPromocionesAsignar.getValueAt(tablaPromocionesAsignar.getSelectedRow(), 0)+",'"+tablaEstudiantesAsignar.getValueAt(tablaEstudiantesAsignar.getSelectedRow(), 0)+"',"+campoAnioPromocion.getYear()+","+campoMesPromocion.getMonth()+")";
                    resultado = sentencia.executeQuery(consultaSQL);

                } catch (SQLException e) {
                    if(e.getSQLState().equals("02000")){ //no_data , una inserción no devuelve nada
                        JOptionPane.showMessageDialog(null,"\n ¡Asignación de promoción a dicho estudiante efectuada con éxito!","Éxito",JOptionPane.INFORMATION_MESSAGE);
                        limpiarPanelAsignacionPromocion();
                    }
                    else{       
                        JOptionPane.showMessageDialog(null, "\n Error en la base de datos \nImposible realizar la asignación", "Error", JOptionPane.ERROR_MESSAGE);
                        e.printStackTrace();
                        conexion = null;
                    }
                }
                finally {
                    if (resultado != null) {
                        try {
                            resultado.close();
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                    if (sentencia != null) {
                        try {
                            sentencia.close();
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                    if (conexion != null) {
                        try {
                            conexion.close();
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        }
    }
    
    private void cancelarAsignacionPromocion(){
        if(btnCancelarAsignacion.isEnabled()){
            campoBusquedaEstAsignar.requestFocus();
            btnRegistrarAsignacion.setEnabled(false);
            btnCancelarAsignacion.setEnabled(false);
            campoBusquedaEstAsignar.setText("");
            campoBusquedaPromocionAsignar.setText("");
            asignarEstudianteSorter();
            limpiarTablaPromocionesAsignar();
        }
    }
    
    private void limpiarPanelAsignacionPromocion(){
        campoBusquedaEstAsignar.requestFocus();
        btnRegistrarAsignacion.setEnabled(false);
        btnCancelarAsignacion.setEnabled(false);
        campoBusquedaEstAsignar.setText("");
        campoBusquedaPromocionAsignar.setText("");
        asignarEstudianteSorter();
        limpiarTablaPromocionesAsignar();
    }
    
    private void asignarEstudianteSorter(){
        TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(tablaEstudiantesAsignar.getModel());
        tablaEstudiantesAsignar.setRowSorter(sorter);
        if(campoBusquedaEstAsignar.getText().isEmpty()){
            sorter.setRowFilter(null);
        }    
        else{
            try{
                sorter.setRowFilter(RowFilter.regexFilter(campoBusquedaEstAsignar.getText()));
            }catch (PatternSyntaxException pse) {
                System.err.println("Bad regex pattern");
            }
        }
    }
    
    private void asignarPromocionSorter(){
        TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(tablaPromocionesAsignar.getModel());
        tablaPromocionesAsignar.setRowSorter(sorter);
        if(campoBusquedaPromocionAsignar.getText().isEmpty()){
            sorter.setRowFilter(null);
        }    
        else{
            try{
                sorter.setRowFilter(RowFilter.regexFilter(campoBusquedaPromocionAsignar.getText()));
            }catch (PatternSyntaxException pse) {
                System.err.println("Bad regex pattern");
            }
        }
    }
    
    private void limpiarTablaPromocionesAsignar(){
        tablaPromocionesAsignar.setModel(new DefaultTableModel(null,
                    
                    new String[]{"Código","Promoción","Monto"}
                                
                    ){

                boolean[] editColumn = new boolean[]{false,false,false};
                
                @Override
                public boolean isCellEditable(int row, int column) {
                    return editColumn[column];
                }
                
            });
        tablaPromocionesAsignar.getColumnModel().getColumn(0).setMaxWidth(45);
        tablaPromocionesAsignar.getColumnModel().getColumn(0).setMinWidth(45);
        tablaPromocionesAsignar.getColumnModel().getColumn(1).setMaxWidth(350);
        tablaPromocionesAsignar.getColumnModel().getColumn(1).setMinWidth(350);
        tablaPromocionesAsignar.getColumnModel().getColumn(2).setMaxWidth(45);
        tablaPromocionesAsignar.getColumnModel().getColumn(2).setMinWidth(45);
    }
    
    private void cargarEstudiantesAsignacion(JTable tabla){
        Connection conexion=null;
        Statement sentencia=null;
        ResultSet resultado=null;
        Object[][] estudiantes;
        
        try {
            Class.forName("org.postgresql.Driver");
        }catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try{
            conexion = DriverManager.getConnection(cadenaConexion);
            sentencia = conexion.createStatement();
            String consultaSQL = "select cedula,nombre,apellido1,apellido2 from estudiante where activo='true'";
            resultado = sentencia.executeQuery(consultaSQL);
            
            int sizeEstudiantes=0;
            while (resultado.next()) {
                sizeEstudiantes++;
            }
            
            estudiantes = new Object[sizeEstudiantes][2];
            resultado = sentencia.executeQuery(consultaSQL);
            int i=0;
            while (resultado.next()) {
                estudiantes[i][0]=resultado.getString("cedula").replaceAll("\\s+$","");
                String prof=resultado.getString("nombre").replaceAll("\\s+$","")+" "+resultado.getString("apellido1").replaceAll("\\s+$","");
                if(resultado.getString("apellido2")!=null){
                    prof=prof+" "+resultado.getString("apellido2").replaceAll("\\s+$","");
                }
                estudiantes[i][1]=prof;
                i++;
            }
                
            tabla.setModel(new DefaultTableModel(estudiantes,
                    
                    new String[]{"Cédula","Profesor"}
                                
                    ){

                boolean[] editColumn = new boolean[]{false,false};
                
                @Override
                public boolean isCellEditable(int row, int column) {
                    return editColumn[column];
                }
                
            });
            
        }catch (SQLException e) {   
            JOptionPane.showMessageDialog(null, "\nImposible cargar datos de estudiantes activos \nError en la base de datos", "Error", JOptionPane.ERROR_MESSAGE);
            e.printStackTrace();
            conexion = null;
            
        }
        finally {
            if (resultado != null) {
                try {
                resultado.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (sentencia != null) {
                try {
                sentencia.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (conexion != null) {
                try {
                conexion.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
     
        
        tabla.getColumnModel().getColumn(0).setMaxWidth(95);
        tabla.getColumnModel().getColumn(0).setMinWidth(95);
        tabla.getColumnModel().getColumn(1).setMaxWidth(345);
        tabla.getColumnModel().getColumn(1).setMinWidth(345);
        
    }
    
    private void cargarPromocionesAsignacion(){
        Connection conexion=null;
        Statement sentencia=null;
        ResultSet resultado=null;
        Object[][] promociones;
        
        try {
            Class.forName("org.postgresql.Driver");
        }catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try{
            conexion = DriverManager.getConnection(cadenaConexion);
            sentencia = conexion.createStatement();
            String consultaSQL = "select codigo,nombre,monto from promocion where activo='true' and codigo not in (select promocion from promocion_estudiantil where estudiante='"+tablaEstudiantesAsignar.getValueAt(tablaEstudiantesAsignar.getSelectedRow(), 0)+"')";
            resultado = sentencia.executeQuery(consultaSQL);
            
            int sizePromociones=0;
            while (resultado.next()) {
                sizePromociones++;
            }
            
            promociones = new Object[sizePromociones][3];
            resultado = sentencia.executeQuery(consultaSQL);
            int i=0;
            while (resultado.next()) {
                promociones[i][0]=resultado.getInt("codigo");
                promociones[i][1]=resultado.getString("nombre").replaceAll("\\s+$","");
                promociones[i][2]=resultado.getString("monto");
                i++;
            }
                
            tablaPromocionesAsignar.setModel(new DefaultTableModel(promociones,
                    
                    new String[]{"Código","Promoción","Monto"}
                                
                    ){

                boolean[] editColumn = new boolean[]{false,false,false};
                
                @Override
                public boolean isCellEditable(int row, int column) {
                    return editColumn[column];
                }
                
            });
            
        }catch (SQLException e) {   
            JOptionPane.showMessageDialog(null, "\nImposible cargar datos de promociones activas \nError en la base de datos", "Error", JOptionPane.ERROR_MESSAGE);
            e.printStackTrace();
            conexion = null;
            
        }
        finally {
            if (resultado != null) {
                try {
                resultado.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (sentencia != null) {
                try {
                sentencia.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (conexion != null) {
                try {
                conexion.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        
        tablaPromocionesAsignar.getColumnModel().getColumn(0).setMaxWidth(45);
        tablaPromocionesAsignar.getColumnModel().getColumn(0).setMinWidth(45);
        tablaPromocionesAsignar.getColumnModel().getColumn(1).setMaxWidth(350);
        tablaPromocionesAsignar.getColumnModel().getColumn(1).setMinWidth(350);
        tablaPromocionesAsignar.getColumnModel().getColumn(0).setMaxWidth(45);
        tablaPromocionesAsignar.getColumnModel().getColumn(0).setMinWidth(45);
        
    } 
    
    private void initComponents7(){
        scrollEstudiantesDesasignar.getViewport().setBackground(Color.WHITE);
        scrollPromocionesDesasignar.getViewport().setBackground(Color.WHITE);
        campoBusquedaEstDesasignar.requestFocus();
        
        ListSelectionModel listSelectionModel1 = tablaEstudiantesDesasignar.getSelectionModel();
        listSelectionModel1.addListSelectionListener(new ListSelectionListener() {
            @Override
            public void valueChanged(ListSelectionEvent e) { 
                ListSelectionModel lsm = (ListSelectionModel)e.getSource();
                if(!lsm.isSelectionEmpty()){
                    cargarPromocionesDesasignacion();
                    campoBusquedaPromocionDesasignar.requestFocus();
                    habilitarCancelarDesasignacion();
                }
                else{
                    limpiarTablaPromocionesDesasignar();
                    campoBusquedaPromocionDesasignar.setText("");
                    deshabilitarCancelarDesasignacion();
                    deshabilitarRegistrarDesasignacion();
                }
            }
        });    
        
        ListSelectionModel listSelectionModel2 = tablaPromocionesDesasignar.getSelectionModel();
        listSelectionModel2.addListSelectionListener(new ListSelectionListener() {
            @Override
            public void valueChanged(ListSelectionEvent e) { 
                ListSelectionModel lsm = (ListSelectionModel)e.getSource();
                if(!lsm.isSelectionEmpty()){
                    campoBusquedaPromocionDesasignar.requestFocus();
                    habilitarRegistrarDesasignacion();
                    habilitarCancelarDesasignacion();
                }
                else{
                    deshabilitarRegistrarDesasignacion();
                    deshabilitarCancelarDesasignacion();
                }
            }
        }); 
        
        tablaEstudiantesDesasignar.getColumnModel().getColumn(0).setMaxWidth(95);
        tablaEstudiantesDesasignar.getColumnModel().getColumn(0).setMinWidth(95);
        tablaEstudiantesDesasignar.getColumnModel().getColumn(1).setMaxWidth(345);
        tablaEstudiantesDesasignar.getColumnModel().getColumn(1).setMinWidth(345);
        tablaPromocionesDesasignar.getColumnModel().getColumn(0).setMaxWidth(45);
        tablaPromocionesDesasignar.getColumnModel().getColumn(0).setMinWidth(45);
        tablaPromocionesDesasignar.getColumnModel().getColumn(1).setMaxWidth(350);
        tablaPromocionesDesasignar.getColumnModel().getColumn(1).setMinWidth(350);
        tablaPromocionesDesasignar.getColumnModel().getColumn(2).setMaxWidth(45);
        tablaPromocionesDesasignar.getColumnModel().getColumn(2).setMinWidth(45);
    }
    
    private void habilitarCancelarDesasignacion(){
        btnCancelarDesasignacion.setEnabled(true);
    }
        
    private void habilitarRegistrarDesasignacion(){
        btnRealizarDesasignacion.setEnabled(true);
    }
    
    private void deshabilitarRegistrarDesasignacion(){
        btnRealizarDesasignacion.setEnabled(false);
    }
    
    private void deshabilitarCancelarDesasignacion(){
        if(tablaEstudiantesDesasignar.getSelectedRow()==-1&&tablaPromocionesDesasignar.getSelectedRow()==-1){
            btnCancelarDesasignacion.setEnabled(false);
        }
    }
    
    private void puedeDesasignar(){
        if(btnRealizarDesasignacion.isEnabled()){
            int confirmado = JOptionPane.showOptionDialog(
                null,"Confirmar desasignación de la promoción: "+tablaPromocionesDesasignar.getValueAt(tablaPromocionesDesasignar.getSelectedRow(), 0)+"-"+((String)tablaPromocionesDesasignar.getValueAt(tablaPromocionesDesasignar.getSelectedRow(), 1)).replaceAll("\\s+$","")+"\n"
                    + "\nal estudiante: "+tablaEstudiantesDesasignar.getValueAt(tablaEstudiantesDesasignar.getSelectedRow(), 0)+"-"+((String)tablaEstudiantesDesasignar.getValueAt(tablaEstudiantesDesasignar.getSelectedRow(), 1)).replaceAll("\\s+$","")+"\n\nConfirmación requerida", "Confirmación requerida",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE,
                null,    // null para icono por defecto.
                new Object[] { "Correcto", "Cancelar"},   // null para YES, NO y CANCEL
                null);
                
            if(confirmado==0){
                Connection conexion=null;
                Statement sentencia=null;
                ResultSet resultado=null;
        
                try {
                    Class.forName("org.postgresql.Driver");
                }catch (ClassNotFoundException e) {
                    e.printStackTrace();
                }
                try{
                    conexion = DriverManager.getConnection(cadenaConexion);
                    sentencia = conexion.createStatement();
          
                    String consultaSQL = "delete from promocion_estudiantil where estudiante='"+tablaEstudiantesDesasignar.getValueAt(tablaEstudiantesDesasignar.getSelectedRow(), 0)+"' and promocion="+tablaPromocionesDesasignar.getValueAt(tablaPromocionesDesasignar.getSelectedRow(), 0);
                    resultado = sentencia.executeQuery(consultaSQL);

                } catch (SQLException e) {
                    if(e.getSQLState().equals("02000")){ //no_data , unaeliminación no devuelve nada
                        JOptionPane.showMessageDialog(null,"\n ¡Desasignación de promoción a dicho estudiante efectuada con éxito!","Éxito",JOptionPane.INFORMATION_MESSAGE);
                        limpiarPanelDesasignacionPromocion();
                    }
                    else{       
                        JOptionPane.showMessageDialog(null, "\n Error en la base de datos \nImposible realizar la desasignación", "Error", JOptionPane.ERROR_MESSAGE);
                        e.printStackTrace();
                        conexion = null;
                    }
                }
                finally {
                    if (resultado != null) {
                        try {
                            resultado.close();
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                    if (sentencia != null) {
                        try {
                            sentencia.close();
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                    if (conexion != null) {
                        try {
                            conexion.close();
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        }
    }
    
    private void cancelarDesasignacionPromocion(){
        if(btnCancelarDesasignacion.isEnabled()){
            campoBusquedaEstDesasignar.requestFocus();
            btnRealizarDesasignacion.setEnabled(false);
            btnCancelarDesasignacion.setEnabled(false);
            campoBusquedaEstDesasignar.setText("");
            campoBusquedaPromocionDesasignar.setText("");
            desasignarEstudianteSorter();
            limpiarTablaPromocionesDesasignar();
        }
    }
    
    private void limpiarPanelDesasignacionPromocion(){
        campoBusquedaEstDesasignar.requestFocus();
        btnRealizarDesasignacion.setEnabled(false);
        btnCancelarDesasignacion.setEnabled(false);
        campoBusquedaEstDesasignar.setText("");
        campoBusquedaPromocionDesasignar.setText("");
        desasignarEstudianteSorter();
        limpiarTablaPromocionesDesasignar();
    }
    
    private void desasignarEstudianteSorter(){
        TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(tablaEstudiantesDesasignar.getModel());
        tablaEstudiantesDesasignar.setRowSorter(sorter);
        if(campoBusquedaEstDesasignar.getText().isEmpty()){
            sorter.setRowFilter(null);
        }    
        else{
            try{
                sorter.setRowFilter(RowFilter.regexFilter(campoBusquedaEstDesasignar.getText()));
            }catch (PatternSyntaxException pse) {
                System.err.println("Bad regex pattern");
            }
        }
    }
    
    private void desasignarPromocionSorter(){
        TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(tablaPromocionesDesasignar.getModel());
        tablaPromocionesDesasignar.setRowSorter(sorter);
        if(campoBusquedaPromocionDesasignar.getText().isEmpty()){
            sorter.setRowFilter(null);
        }    
        else{
            try{
                sorter.setRowFilter(RowFilter.regexFilter(campoBusquedaPromocionDesasignar.getText()));
            }catch (PatternSyntaxException pse) {
                System.err.println("Bad regex pattern");
            }
        }
    }
    
    private void limpiarTablaPromocionesDesasignar(){
        tablaPromocionesDesasignar.setModel(new DefaultTableModel(null,
                    
                    new String[]{"Código","Promoción","Monto"}
                                
                    ){

                boolean[] editColumn = new boolean[]{false,false,false};
                
                @Override
                public boolean isCellEditable(int row, int column) {
                    return editColumn[column];
                }
                
            });
        tablaPromocionesDesasignar.getColumnModel().getColumn(0).setMaxWidth(45);
        tablaPromocionesDesasignar.getColumnModel().getColumn(0).setMinWidth(45);
        tablaPromocionesDesasignar.getColumnModel().getColumn(1).setMaxWidth(350);
        tablaPromocionesDesasignar.getColumnModel().getColumn(1).setMinWidth(350);
        tablaPromocionesDesasignar.getColumnModel().getColumn(2).setMaxWidth(45);
        tablaPromocionesDesasignar.getColumnModel().getColumn(2).setMinWidth(45);
    }
    
    private void cargarEstudiantesDesasignacion(JTable tabla){
        Connection conexion=null;
        Statement sentencia=null;
        ResultSet resultado=null;
        Object[][] estudiantes;
        
        try {
            Class.forName("org.postgresql.Driver");
        }catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try{
            conexion = DriverManager.getConnection(cadenaConexion);
            sentencia = conexion.createStatement();
            String consultaSQL = "select distinct cedula,nombre,apellido1,apellido2 from (select cedula,nombre,apellido1,apellido2 from estudiante where activo='true')alias1,(select estudiante from promocion_estudiantil)alias2 where alias1.cedula=alias2.estudiante";
            resultado = sentencia.executeQuery(consultaSQL);
            
            int sizeProfesores=0;
            while (resultado.next()) {
                sizeProfesores++;
            }
            
            estudiantes = new Object[sizeProfesores][2];
            resultado = sentencia.executeQuery(consultaSQL);
            int i=0;
            while (resultado.next()) {
                estudiantes[i][0]=resultado.getString("cedula").replaceAll("\\s+$","");
                String prof=resultado.getString("nombre").replaceAll("\\s+$","")+" "+resultado.getString("apellido1").replaceAll("\\s+$","");
                if(resultado.getString("apellido2")!=null){
                    prof=prof+" "+resultado.getString("apellido2").replaceAll("\\s+$","");
                }
                estudiantes[i][1]=prof;
                i++;
            }
                
            tabla.setModel(new DefaultTableModel(estudiantes,
                    
                    new String[]{"Cédula","Estudiante"}
                                
                    ){

                boolean[] editColumn = new boolean[]{false,false};
                
                @Override
                public boolean isCellEditable(int row, int column) {
                    return editColumn[column];
                }
                
            });
            
        }catch (SQLException e) {   
            JOptionPane.showMessageDialog(null, "\nImposible cargar datos de estudiantes con promociones asignadas\nError en la base de datos", "Error", JOptionPane.ERROR_MESSAGE);
            e.printStackTrace();
            conexion = null;
            
        }
        finally {
            if (resultado != null) {
                try {
                resultado.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (sentencia != null) {
                try {
                sentencia.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (conexion != null) {
                try {
                conexion.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
     
        
        tabla.getColumnModel().getColumn(0).setMaxWidth(95);
        tabla.getColumnModel().getColumn(0).setMinWidth(95);
        tabla.getColumnModel().getColumn(1).setMaxWidth(345);
        tabla.getColumnModel().getColumn(1).setMinWidth(345);
        
    }
    
    private void cargarPromocionesDesasignacion(){
        Connection conexion=null;
        Statement sentencia=null;
        ResultSet resultado=null;
        Object[][] promociones;
        
        try {
            Class.forName("org.postgresql.Driver");
        }catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try{
            conexion = DriverManager.getConnection(cadenaConexion);
            sentencia = conexion.createStatement();
            String consultaSQL = "select codigo,nombre,monto from (select codigo,nombre,monto from promocion where activo='true')alias1,(select promocion from promocion_estudiantil where estudiante='"+tablaEstudiantesDesasignar.getValueAt(tablaEstudiantesDesasignar.getSelectedRow(), 0)+"')alias2 where alias1.codigo=alias2.promocion";
            resultado = sentencia.executeQuery(consultaSQL);
            
            int sizePromociones=0;
            while (resultado.next()) {
                sizePromociones++;
            }
            
            promociones = new Object[sizePromociones][3];
            resultado = sentencia.executeQuery(consultaSQL);
            int i=0;
            while (resultado.next()) {
                promociones[i][0]=resultado.getInt("codigo");
                promociones[i][1]=resultado.getString("nombre").replaceAll("\\s+$","");
                promociones[i][2]=resultado.getString("monto");
                i++;
            }
                
            tablaPromocionesDesasignar.setModel(new DefaultTableModel(promociones,
                    
                    new String[]{"Código","Promoción","Monto"}
                                
                    ){

                boolean[] editColumn = new boolean[]{false,false,false};
                
                @Override
                public boolean isCellEditable(int row, int column) {
                    return editColumn[column];
                }
                
            });
            
        }catch (SQLException e) {   
            JOptionPane.showMessageDialog(null, "\nImposible cargar datos de promociones asignadas al estudiante seleccionado\nError en la base de datos", "Error", JOptionPane.ERROR_MESSAGE);
            e.printStackTrace();
            conexion = null;
            
        }
        finally {
            if (resultado != null) {
                try {
                resultado.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (sentencia != null) {
                try {
                sentencia.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (conexion != null) {
                try {
                conexion.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        
        tablaPromocionesDesasignar.getColumnModel().getColumn(0).setMaxWidth(45);
        tablaPromocionesDesasignar.getColumnModel().getColumn(0).setMinWidth(45);
        tablaPromocionesDesasignar.getColumnModel().getColumn(1).setMaxWidth(350);
        tablaPromocionesDesasignar.getColumnModel().getColumn(1).setMinWidth(350);
        tablaPromocionesDesasignar.getColumnModel().getColumn(2).setMaxWidth(45);
        tablaPromocionesDesasignar.getColumnModel().getColumn(2).setMinWidth(45);
        
    } 
    
    private void initComponents8(){
        scrollMostrarAsignaciones.getViewport().setBackground(Color.WHITE);
        tablaMostrarAsignaciones.getColumnModel().getColumn(0).setMaxWidth(360);
        tablaMostrarAsignaciones.getColumnModel().getColumn(0).setMinWidth(360);
        tablaMostrarAsignaciones.getColumnModel().getColumn(1).setMaxWidth(310);
        tablaMostrarAsignaciones.getColumnModel().getColumn(1).setMinWidth(310);
        tablaMostrarAsignaciones.getColumnModel().getColumn(2).setMaxWidth(100);
        tablaMostrarAsignaciones.getColumnModel().getColumn(2).setMinWidth(100);
    }
    
    private void popUpFormaBusqueda(){
        if(btnBusqueda.isEnabled()){
            int confirmado = JOptionPane.showOptionDialog(
                null,"Elija cómo desea realizar la búsqueda", "Acción requerida",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE,
                null,    // null para icono por defecto.
                new Object[] { "Por estudiante", "Por promoción"},   // null para YES, NO y CANCEL
                null);
                
            if(confirmado==0){
                formaBusqueda=0;
                modoBusqueda();
            }
            else{
                formaBusqueda=1;
                modoBusqueda();
            }
        }
    }
    
    private void modoBusqueda(){
        btnBusqueda.setEnabled(false);
        campoBusqueda.setEnabled(true);
        btnCancelarBusqueda.setEnabled(true);
    }
    
    private void limpiarPanelMostrarAsignacion(){
        btnBusqueda.setEnabled(true);
        campoBusqueda.setText("");
        campoBusqueda.setEnabled(false);
        btnCancelarBusqueda.setEnabled(false);
        buscarAsignacionEstudianteSorter();
    }
    
    private void modoCancelar(){
        if(btnCancelarBusqueda.isEnabled()){
            btnBusqueda.setEnabled(true);
            campoBusqueda.setText("");
            campoBusqueda.setEnabled(false);
            btnCancelarBusqueda.setEnabled(false);
            buscarAsignacionEstudianteSorter();
        }
    }
    
    private void buscarAsignacionEstudianteSorter(){
        TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(tablaMostrarAsignaciones.getModel());
        tablaMostrarAsignaciones.setRowSorter(sorter);
        if(campoBusqueda.getText().isEmpty()){
            sorter.setRowFilter(null);
        }    
        else{
            try{
                sorter.setRowFilter(RowFilter.regexFilter(campoBusqueda.getText(),0));
            }catch (PatternSyntaxException pse) {
                System.err.println("Bad regex pattern");
            }
        }
    }
    
    private void buscarAsignacionPromocionSorter(){
        TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(tablaMostrarAsignaciones.getModel());
        tablaMostrarAsignaciones.setRowSorter(sorter);
        if(campoBusqueda.getText().isEmpty()){
            sorter.setRowFilter(null);
        }    
        else{
            try{
                sorter.setRowFilter(RowFilter.regexFilter(campoBusqueda.getText(),1));
            }catch (PatternSyntaxException pse) {
                System.err.println("Bad regex pattern");
            }
        }
    }
    
    private void buscarAsignacion(){
        if(formaBusqueda==0){
            buscarAsignacionEstudianteSorter();
        }
        else{
            buscarAsignacionPromocionSorter();
        }
    }
    
    private void cargarAsignaciones(){
        Connection conexion=null;
        Statement sentencia=null;
        ResultSet resultado=null;
        Object[][] asignaciones;
        
        try {
            Class.forName("org.postgresql.Driver");
        }catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try{
            conexion = DriverManager.getConnection(cadenaConexion);
            sentencia = conexion.createStatement();
            String promocion="select codigo,nombre,estudiante from (select codigo,nombre from promocion where activo='true')alias1,(select promocion,estudiante from promocion_estudiantil)alias2 where alias1.codigo=alias2.promocion";
            String estudiante="select cedula,nombre,apellido1,apellido2,promocion,anio,mes from (select cedula,nombre,apellido1,apellido2 from estudiante where activo='true')alias3,(select estudiante,promocion,anio,mes from promocion_estudiantil)alias4 where alias3.cedula=alias4.estudiante";
            String consultaSQL = "select promocion,alias5.nombre as nombre_promocion,anio,mes,estudiante,alias6.nombre as nombre_est,apellido1,apellido2 from ("+promocion+")alias5,("+estudiante+")alias6 where alias5.codigo=alias6.promocion and alias5.estudiante=alias6.cedula";
            resultado = sentencia.executeQuery(consultaSQL);
            
            int sizeAsignaciones=0;
            while (resultado.next()) {
                sizeAsignaciones++;
            }
            
            asignaciones = new Object[sizeAsignaciones][3];
            resultado = sentencia.executeQuery(consultaSQL);
            int i=0;
            while (resultado.next()) {
                asignaciones[i][0]=resultado.getString("estudiante").replaceAll("\\s+$","");
                String prof=resultado.getString("nombre_est").replaceAll("\\s+$","")+" "+resultado.getString("apellido1").replaceAll("\\s+$","");
                if(resultado.getString("apellido2")!=null){
                    prof=prof+" "+resultado.getString("apellido2").replaceAll("\\s+$","");
                }
                asignaciones[i][0]=asignaciones[i][0]+"-"+prof;
                asignaciones[i][1]=resultado.getInt("promocion")+"-"+resultado.getString("nombre_promocion").replaceAll("\\s+$","");
                asignaciones[i][2]=switchMes(resultado.getInt("mes"))+" "+resultado.getInt("anio");
                i++;
            }
                 
            tablaMostrarAsignaciones.setModel(new DefaultTableModel(asignaciones,
                    
                    new String[]{"Estudiante","Promoción asignada","Vigencia"}
                                
                    ){

                boolean[] editColumn = new boolean[]{false,false,false};
                
                @Override
                public boolean isCellEditable(int row, int column) {
                    return editColumn[column];
                }
                
            });
            
        }catch (SQLException e) {   
            JOptionPane.showMessageDialog(null, "\nImposible cargar datos de asignaciones\nError en la base de datos", "Error", JOptionPane.ERROR_MESSAGE);
            e.printStackTrace();
            conexion = null;
            
        }
        finally {
            if (resultado != null) {
                try {
                resultado.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (sentencia != null) {
                try {
                sentencia.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (conexion != null) {
                try {
                conexion.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        
        tablaMostrarAsignaciones.getColumnModel().getColumn(0).setMaxWidth(310);
        tablaMostrarAsignaciones.getColumnModel().getColumn(0).setMinWidth(310);
        tablaMostrarAsignaciones.getColumnModel().getColumn(1).setMaxWidth(310);
        tablaMostrarAsignaciones.getColumnModel().getColumn(1).setMinWidth(310);
         tablaMostrarAsignaciones.getColumnModel().getColumn(2).setMaxWidth(100);
        tablaMostrarAsignaciones.getColumnModel().getColumn(2).setMinWidth(100);
        
    } 
    
    private String switchMes(int paramMes){
        switch (paramMes) {
            case 0:  return "Enero";
            case 1:  return "Febrero";
            case 2:  return "Marzo";
            case 3:  return "Abril";
            case 4:  return "Mayo";
            case 5:  return "Junio";
            case 6:  return "Julio";
            case 7:  return "Agosto";
            case 8:  return "Setiembre";
            case 9:  return "Octubre";
            case 10:  return "Noviembre";
            case 11:  return "Diciembre";
        }
        return "";
    }
    
    private String obtenerFechaDatePicker(JDateChooser picker){
        String diaFecha = ""+picker.getCalendar().get(Calendar.DAY_OF_MONTH);
        if(diaFecha.length()==1){
            diaFecha="0"+diaFecha;
        }
        String mesFecha = ""+(picker.getCalendar().get(Calendar.MONTH)+1);
        if(mesFecha.length()==1){
            mesFecha="0"+mesFecha;
        }
        return ""+diaFecha+"-"+mesFecha+"-"+picker.getCalendar().get(Calendar.YEAR);
    }
    
    private java.sql.Date getFechaNac(String fecha_nacim) {
        DateFormat df = new SimpleDateFormat("dd-MM-yyyy");
        java.util.Date parsedUtilDate;  
        java.sql.Date sqltDate=null;
        try {
            parsedUtilDate = df.parse(fecha_nacim);
            sqltDate= new java.sql.Date(parsedUtilDate.getTime()); 
        } catch (ParseException ex) {
            Logger.getLogger(VentanaModuloAdministrador.class.getName()).log(Level.SEVERE, null, ex);
        } 
        return sqltDate;
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Windows".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(VentanaModuloEstudianteEstandar.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(VentanaModuloEstudianteEstandar.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(VentanaModuloEstudianteEstandar.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(VentanaModuloEstudianteEstandar.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new VentanaModuloEstudianteEstandar().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLabel InfoEstAct;
    private javax.swing.JLabel InfoEstAgregar;
    private javax.swing.JLabel InfoRespAct;
    private javax.swing.JLabel InfoRespAgregar;
    private javax.swing.JLabel apellido1EstAct;
    private javax.swing.JLabel apellido1EstAgregar;
    private javax.swing.JLabel apellido1RespAct;
    private javax.swing.JLabel apellido1RespAgregar;
    private javax.swing.JLabel apellido2EstAct;
    private javax.swing.JLabel apellido2EstAgregar;
    private javax.swing.JLabel apellido2RespAct;
    private javax.swing.JLabel apellido2RespAgregar;
    private javax.swing.JLabel asignacionMostrar;
    private javax.swing.JLabel astApellido1Agregar;
    private javax.swing.JLabel astApellido1RespAgregar;
    private javax.swing.JLabel astCedulaAgregar;
    private javax.swing.JLabel astCedulaRespAgregar;
    private javax.swing.JLabel astCorreoAgregar;
    private javax.swing.JLabel astCorreoRespAgregar;
    private javax.swing.JLabel astEstadoEstAgregar;
    private javax.swing.JLabel astFechaNacEstAgregar;
    private javax.swing.JLabel astFechaNacRespAgregar;
    private javax.swing.JLabel astNombreAgregar;
    private javax.swing.JLabel astNombreRespAgregar;
    private javax.swing.JLabel astTel1EstAgregar;
    private javax.swing.JLabel astTelRespAgregar;
    private javax.swing.JButton btnActualizarEst;
    private javax.swing.JButton btnBusqueda;
    private javax.swing.JButton btnCancelarAsignacion;
    private javax.swing.JButton btnCancelarBusqueda;
    private javax.swing.JButton btnCancelarDesasignacion;
    private javax.swing.JButton btnCancelarEstAct;
    private javax.swing.JButton btnCancelarEstAgregar;
    private javax.swing.JButton btnCrearEstAgregar;
    private javax.swing.JButton btnNuevoEstAgregar;
    private javax.swing.JButton btnRealizarDesasignacion;
    private javax.swing.JButton btnRegistrarAsignacion;
    private javax.swing.JLabel busquedaEstActualizar;
    private javax.swing.JLabel busquedaEstAsignar;
    private javax.swing.JLabel busquedaEstDesasignar;
    private javax.swing.JLabel busquedaEstEliminar;
    private javax.swing.JLabel busquedaEstMostrar;
    private javax.swing.JLabel busquedaPromocionAsignar;
    private javax.swing.JLabel busquedaPromocionDesasignar;
    private com.toedter.calendar.JYearChooser campoAnioPromocion;
    private javax.swing.JTextField campoApellido1EstAct;
    private javax.swing.JTextField campoApellido1EstAgregar;
    private javax.swing.JTextField campoApellido1RespAct;
    private javax.swing.JTextField campoApellido1RespAgregar;
    private javax.swing.JTextField campoApellido2EstAct;
    private javax.swing.JTextField campoApellido2EstAgregar;
    private javax.swing.JTextField campoApellido2RespAct;
    private javax.swing.JTextField campoApellido2RespAgregar;
    private javax.swing.JTextField campoBusqueda;
    private javax.swing.JTextField campoBusquedaEstActualizar;
    private javax.swing.JTextField campoBusquedaEstAsignar;
    private javax.swing.JTextField campoBusquedaEstDesasignar;
    private javax.swing.JTextField campoBusquedaEstEliminar;
    private javax.swing.JTextField campoBusquedaEstMostrar;
    private javax.swing.JTextField campoBusquedaPromocionAsignar;
    private javax.swing.JTextField campoBusquedaPromocionDesasignar;
    private javax.swing.JTextField campoCedulaEstAct;
    private javax.swing.JTextField campoCedulaEstAgregar;
    private javax.swing.JTextField campoCedulaRespAct;
    private javax.swing.JTextField campoCedulaRespAgregar;
    private javax.swing.JTextField campoEmailEst1Act;
    private javax.swing.JTextField campoEmailEst1Agregar;
    private javax.swing.JTextField campoEmailEst2Act;
    private javax.swing.JTextField campoEmailEst2Agregar;
    private javax.swing.JTextField campoEmailRespAct;
    private javax.swing.JTextField campoEmailRespAgregar;
    private com.toedter.calendar.JDateChooser campoFechaNacEstAct;
    private com.toedter.calendar.JDateChooser campoFechaNacEstAgregar;
    private com.toedter.calendar.JDateChooser campoFechaNacRespAct;
    private com.toedter.calendar.JDateChooser campoFechaNacRespAgregar;
    private com.toedter.calendar.JMonthChooser campoMesPromocion;
    private javax.swing.JTextField campoNombreAgregar;
    private javax.swing.JTextField campoNombreEstAct;
    private javax.swing.JTextField campoNombreRespAct;
    private javax.swing.JTextField campoNombreRespAgregar;
    private javax.swing.JTextField campoTel1EstAct;
    private javax.swing.JTextField campoTel1EstAgregar;
    private javax.swing.JTextField campoTel2EstAct;
    private javax.swing.JTextField campoTel2EstAgregar;
    private javax.swing.JTextField campoTelRespAct;
    private javax.swing.JTextField campoTelRespAgregar;
    private javax.swing.JLabel cedulaEstAct;
    private javax.swing.JLabel cedulaEstAgregar;
    private javax.swing.JLabel cedulaRespAct;
    private javax.swing.JLabel cedulaRespAgregar;
    private javax.swing.JLabel correoEst1Act;
    private javax.swing.JLabel correoEst1Agregar;
    private javax.swing.JLabel correoEst2Act;
    private javax.swing.JLabel correoEst2Agregar;
    private javax.swing.JLabel correoRespAct;
    private javax.swing.JLabel correoRespAgregar;
    private javax.swing.JRadioButton estadoActivoEstAct;
    private javax.swing.JRadioButton estadoActivoEstAgregar;
    private javax.swing.JLabel estadoEstAct;
    private javax.swing.JLabel estadoEstAgregar;
    private javax.swing.JRadioButton estadoInactivoEstAct;
    private javax.swing.JRadioButton estadoInactivoEstAgregar;
    private javax.swing.JLabel fechaNacEstAct;
    private javax.swing.JLabel fechaNacEstAgregar;
    private javax.swing.JLabel fechaNacRespAct;
    private javax.swing.JLabel fechaNacRespAgregar;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel nombreEstAct;
    private javax.swing.JLabel nombreEstAgregar;
    private javax.swing.JLabel nombreRespAct;
    private javax.swing.JLabel nombreRespAgregar;
    private javax.swing.JScrollPane panelActualizarExpediente;
    private javax.swing.JPanel panelActualizarExpediente2;
    private javax.swing.JScrollPane panelAsignacionPromociones;
    private javax.swing.JPanel panelAsignacionPromociones2;
    private javax.swing.JPanel panelCrearExpediente;
    private javax.swing.JPanel panelDesasignacionCursos2;
    private javax.swing.JScrollPane panelDesasignacionPromociones;
    private javax.swing.JPanel panelEliminarExpediente;
    private org.edisoncor.gui.panel.PanelImage panelImagenEstudiante;
    private org.edisoncor.gui.panel.PanelImage panelImagenEstudiante2;
    private javax.swing.JPanel panelManejoAsignacion;
    private javax.swing.JPanel panelManejoDesasignacion;
    private javax.swing.JPanel panelManejoExpediente;
    private javax.swing.JPanel panelManejoExpediente2;
    private javax.swing.JPanel panelManejoExpediente3;
    private javax.swing.JPanel panelManejoExpediente4;
    private javax.swing.JPanel panelManejoMostrarAsignaciones;
    private javax.swing.JPanel panelMostrarAsignacionesPromociones;
    private javax.swing.JPanel panelMostrarExpediente;
    private javax.swing.JTabbedPane panelOpcionesEstudiante;
    private javax.swing.JScrollPane scrollEstudiantesActualizar;
    private javax.swing.JScrollPane scrollEstudiantesAsignar;
    private javax.swing.JScrollPane scrollEstudiantesDesasignar;
    private javax.swing.JScrollPane scrollEstudiantesEliminar;
    private javax.swing.JScrollPane scrollEstudiantesMostrar;
    private javax.swing.JScrollPane scrollMostrarAsignaciones;
    private javax.swing.JScrollPane scrollPromocionesAsignar;
    private javax.swing.JScrollPane scrollPromocionesDesasignar;
    private javax.swing.JLabel seleccioEstudianteDesasignacion;
    private javax.swing.JLabel seleccionEstudiante;
    private javax.swing.JLabel seleccionPromocion;
    private javax.swing.JLabel seleccionPromocionDesasignacion;
    private javax.swing.JTable tablaEstudiantesActualizar;
    private javax.swing.JTable tablaEstudiantesAsignar;
    private javax.swing.JTable tablaEstudiantesDesasignar;
    private javax.swing.JTable tablaEstudiantesEliminar;
    private javax.swing.JTable tablaEstudiantesMostrar;
    private javax.swing.JTable tablaMostrarAsignaciones;
    private javax.swing.JTable tablaPromocionesAsignar;
    private javax.swing.JTable tablaPromocionesDesasignar;
    private javax.swing.JLabel tel1EstAct;
    private javax.swing.JLabel tel1EstAgregar;
    private javax.swing.JLabel tel1RespAct;
    private javax.swing.JLabel tel1RespAgregar;
    private javax.swing.JLabel tel2EstAct;
    private javax.swing.JLabel tel2EstAgregar;
    // End of variables declaration//GEN-END:variables
    private static final String cadenaConexion = "jdbc:postgresql://localhost/SMAAMDB?" + "user=postgres&password=root";
    private static final String msjLetras = "Sólo letras";
    private static final String msjNumeros = "Sólo números";
    private static final String patronEmail = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
            + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
    private JTable tablaEstAct2;
    private int formaBusqueda;
    
    /*
    Comienzo del patrón
^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$;
Caracteres por los que puede comenzar la dirección del correo electrónico
^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$;
Caracteres opcionales.
^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$;
La dirección de correo debe contener el símbolo @
^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$;
El nombre del dominio del correo debe comenzar por estos caracteres
^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$;
El primer dominio de nivel superior o TLD debe de comenzar por punto seguido por los caracteres resaltados
^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$;
El primer nivel TLD puede ir seguido opcionalmente por un segundo nivel TLD que debe ser de tener 2 o más caracteres
^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$;
     */

    
}
